我想检查用户此时是否在线。这应该显示在用户个人资料中。
我在我的 application_controller
after_filter :user_activity
private
def user_activity
current_user.try :touch
end
我在 user-model
def online?
updated_at > 10.minutes.ago
end
如果用户在线,我可以查看 View :(HAML)
- if @user.online?
这可行,但更新此信息总是需要重新加载页面。 它怎么能做成实时检查呢? 也许使用 ActionCable?
PS:使用设计
最佳答案
是的,Action Cable 可用于此。 Rails 指南在这里有(一半)这样的例子:Action Cable Overview -- 6.1 Example 1: User Appearance
基本上,您创建一个 AppearanceChannel
并且每个用户都订阅它。订阅调用 current_user
的 appear
函数,然后可以广播出去(例如,向其他用户显示在线状态),通常通过像 这样的后台作业BroadcastAppearanceJob
。
(我自己刚刚开始解决这个问题)。
关于ruby-on-rails - 实时查看用户是否在线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39458000/