几分钟后自动删除记录

时间:2013-04-06 00:00:17

标签: ruby-on-rails activerecord timeout

我将按照first question中的建议使用timeout。因此,如果某人查看帖子,他将被记录到正在查看同一帖子的人员列表中,并且该记录将在一段时间(例如5分钟)后过期。

有人建议我使用cache来实现这一目标,但我想我会尝试使用Rails协会来完成这项工作。

post has_many readers

PostsController#Show

@post.readers.create(user: current_user) 我需要让此记录在5分钟后过期,以便current_user将自动从post.readers中删除。

这是正确的做法吗?另外,如何设置Reader模型,以便在创建5分钟后删除任何记录?

1 个答案:

答案 0 :(得分:1)

您可以在执行查询时检索最新的阅读器:

post.readers.where('created_at >= ?', 5.minutes.ago)

然后你可以有一个后台工作来进行清理。