我将按照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分钟后删除任何记录?
答案 0 :(得分:1)
您可以在执行查询时检索最新的阅读器:
post.readers.where('created_at >= ?', 5.minutes.ago)
然后你可以有一个后台工作来进行清理。