实现类似Stackoverflow的计时器

时间:2013-04-06 03:40:30

标签: ruby-on-rails activerecord timeout

Stackoverflow通过在发布每条评论后给予他15秒的延迟来阻止他们在短时间内发布过多评论。在我的Rails应用程序中,我想实现一个使用相同逻辑的不同功能。如果用户正在阅读帖子的时间超过5分钟,我想将他添加到帖子的readers表中。是使用sessions还是cookies

完成的

更新:我想的更多,逻辑可能略有不同。 5分钟后,如果用户仍然在页面上,我需要再次检查,阅读帖子。

澄清:我想实现一种方法来检查用户是否已阅读同一篇文章的时间超过5分钟。

1 个答案:

答案 0 :(得分:1)

你问的问题太多了,不知道你的应用程序的工作流程很难回答这个问题。将其分解,以便其他人也更容易。

现在,要回答部分问题,您可以使用会话进行计时。这样的事可能吗?

def methodName
  if session[:logged_in]
    do_something if session[:last_seen] < 5.minutes.from_now
    session[:last_seen] = Time.now
  else
    do_something_else
    session[:last_seen] = Time.now
  end
end

希望这会有所帮助。如果您有任何问题,请告诉我。