实现一个类似于Stackoverflow的定时器



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

更新:当我想得更多时,逻辑可能略有不同。5分钟后,我需要再次检查用户是否仍在页面上阅读文章。

澄清:我想实现一个方法来检查用户是否已经阅读相同的帖子超过5分钟。

你问了太多的问题,不知道你的应用程序的工作流程很难回答这个问题。把它分解,这样别人也会更容易。

现在,回答你的部分问题,你可以用session来计时。也许是这样的?

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

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

最新更新