对Rails中第一个例子的不理解'动作电缆指南
Incomprehension about the first example in Rails' Guide for action cable
我正在尝试在我的应用程序中添加用户外观示例(来自 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
如果有人对以下句子有解释:“appear/disappear API 可以由 Redis、数据库或其他任何东西支持。 "(就在 Rails' 指南中这部分代码的上方)。
我尝试了几种选择,例如在我的模型用户中添加一个方法 "appear",该方法在 "true" 上更改来自我的模型用户的数据库值,但订阅的定义调用 current_user.appear 和然后出现定义调用 current_user.appear(with_param) 产生冲突 ...
可能有些东西我不明白,但我不明白到底是什么......
非常感谢您的回答。
关于 "appear/disappear API backing" 的句子 - 意味着 ActionCable 不关心你在哪里以及如何存储和处理用户状态 - 你可以只在数据库中存储一个标志或更多数据(比如最后一次看到的聊天室,最后一次看到时间等),您可以将类似的数据存储在 redis 或任何其他您喜欢的地方。
(un)subscribed
方法由 ActionCable 本身在用户(断开)连接到该频道时调用(通常这发生在页面加载时和导航 away/closing 之后 - 当页面在浏览器中打开时它会不一定意味着用户实际上在他们的设备附近),而 appear
/away
是通过在频道上调用 perform("action_name_here")
从客户端 js 调用的操作。
示例假定客户端代码将检测用户存在并发送更新。
我正在尝试在我的应用程序中添加用户外观示例(来自 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
如果有人对以下句子有解释:“appear/disappear API 可以由 Redis、数据库或其他任何东西支持。 "(就在 Rails' 指南中这部分代码的上方)。
我尝试了几种选择,例如在我的模型用户中添加一个方法 "appear",该方法在 "true" 上更改来自我的模型用户的数据库值,但订阅的定义调用 current_user.appear 和然后出现定义调用 current_user.appear(with_param) 产生冲突 ...
可能有些东西我不明白,但我不明白到底是什么......
非常感谢您的回答。
关于 "appear/disappear API backing" 的句子 - 意味着 ActionCable 不关心你在哪里以及如何存储和处理用户状态 - 你可以只在数据库中存储一个标志或更多数据(比如最后一次看到的聊天室,最后一次看到时间等),您可以将类似的数据存储在 redis 或任何其他您喜欢的地方。
(un)subscribed
方法由 ActionCable 本身在用户(断开)连接到该频道时调用(通常这发生在页面加载时和导航 away/closing 之后 - 当页面在浏览器中打开时它会不一定意味着用户实际上在他们的设备附近),而 appear
/away
是通过在频道上调用 perform("action_name_here")
从客户端 js 调用的操作。
示例假定客户端代码将检测用户存在并发送更新。