0

我将按照第一个问题timeout中的建议使用。所以如果一个人查看了一个帖子,他就会被记录到正在查看同一帖子的人列表中,并且这个记录会在一段时间后(例如5分钟)过期。

有人建议我使用cache来实现这一点,但我想我会尝试使用 Rails 关联来做到这一点,如下所示。

post has_many readers

而在PostsController#Show

@post.readers.create(user: current_user) 我需要让这条记录在 5 分钟后过期,这样 current_user 就会自动从 post.readers 中删除。

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

4

1 回答 1

1

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

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

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

于 2013-04-06T00:10:13.730 回答