<%= user.last_seen_at.strftime("%I:%M UTC") %>
会告诉我用户上次在我的网站上执行操作的日期。
执行<%=Time.now.strftime("%I:%M UTC") %>
将提供当前时间。
如果&lt;%= user.last_seen_at%&gt;的值,我希望它设置在显示<h1> online </h1>
的位置相同或在<%= Time.now.strftime("%I:%M UTC") %>
的5分钟内。
答案 0 :(得分:0)
试试这个:
<% = content_tag('h1','online') if (user.last_seen_at + 5.minutes) >= Time.current %>
答案 1 :(得分:0)
始终使用Time.zone.now而不是Time.now
答案 2 :(得分:0)
创建辅助或实例方法可能更好
def online?
last_seen_at + 5.minutes >= Time.current
end
答案 3 :(得分:0)
首先,5分钟的任意间隔应该避免硬编码到视图中。它可以在其他视图中使用,也可以在应用程序的任何位置使用。
我建议你把一个帮手写成一个集中的地方,你可以存储这5分钟的容差并在你的控制器中使用它,如下所示:
class MyController < ApplicationController
helper TimeToleranceHelper
...
end
帮助程序本身应使用Time.zone.now
而不是Time.now
(read more on this)。
它可能看起来像:
module TimeToleranceHelper
TOLERANCE = 5.minutes
def soon?(time)
now = Time.zone.now
(time..time + TOLERANCE).cover? now
end
end