【问题标题】:"User last online" at <time> using devise?<时间>的“用户上次在线”使用设计?
【发布时间】:2020-09-17 15:21:26
【问题描述】:

是否有任何简单/原生的方式来显示用户上次在线的时间?

我能得到的最接近的是

<%= @user.current_sign_in_at.to_s %>

这显示了上次登录的时间(这可能与用户上次检查网站的时间有很大不同 - 即他们上次“在线”可以这么说)。例如,如果用户在过去 90 秒内的任何时间都在使用该网站,我想显示一个小绿灯,但如果使用他们最后一次登录的时间,那将不准确。

【问题讨论】:

    标签: ruby-on-rails devise ruby-on-rails-6


    【解决方案1】:

    在用户表last_seen_at 中添加一列并每次使用touch 更新它。

    class ApplicationController
      before_action :record_last_seen_at
    
      private
    
      def record_last_seen_at
        if current_user
          current_user.touch :last_seen_at
        end
      end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-20
      • 1970-01-01
      • 1970-01-01
      • 2013-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多