【问题标题】:Incomprehension about the first example in Rails' Guide for action cableRails'Guide for action cable 第一个例子的不理解
【发布时间】:2019-04-18 10:02:28
【问题描述】:

我正在尝试在我的应用中添加用户外观示例(来自 Rails 指南:https://guides.rubyonrails.org/action_cable_overview.html#example-1-user-appearances),但我不明白这部分:

# app/channels/appearance_channel.rb
class AppearanceChannel < ApplicationCable::Channel
  def subscribed
    current_user.appear
  end

  def unsubscribed
    current_user.disappear
  end

  def appear(data)
    current_user.appear(on: data['appearing_on'])
  end

  def away
    current_user.away
  end
end

如果有人对以下句子有解释:“出现/消失的 API 可以由 Redis、数据库或其他任何东西支持。”(就在 Rails 中这部分代码的上方'指南)。

我尝试了几个选项,在我的模型用户中添加一个方法“出现”,它改变了我的模型用户的数据库值“真”,但是订阅的定义调用 current_user.appear,然后出现定义调用 current_user.appear (with_param) 产生冲突...

可能有些东西我不明白,但我不明白它到底是什么......

非常感谢您的回答。

【问题讨论】:

    标签: ruby-on-rails ruby actioncable


    【解决方案1】:

    关于“出现/消失 API 支持”的句子 - 意味着 ActionCable 不关心您在何处以及如何存储和处理用户状态 - 您可以在数据库中仅存储一个标志或更多数据(如上次看到的聊天室,上次看到时间等),您可以将类似的数据存储在redis或您喜欢的任何其他地方。

    (un)subscribed 方法是 ActionCable 本身在用户(断开)连接到该通道时调用的方法(通常这发生在页面加载和导航离开/关闭之后 - 当页面在浏览器中打开时,它并不一定意味着用户实际上在他们的设备附近),而appear/away 是通过在频道上调用perform("action_name_here") 从客户端js 调用的操作。 示例假定客户端代码将检测用户的存在并发送更新。

    【讨论】:

    • 谢谢你的回答,我现在似乎更清楚了。
    猜你喜欢
    • 2017-07-10
    • 2017-02-24
    • 1970-01-01
    • 1970-01-01
    • 2018-06-02
    • 2018-03-28
    • 1970-01-01
    • 2021-03-02
    • 2020-08-15
    相关资源
    最近更新 更多