Rails - 内容显示的适当关联/数据模型"冷却"

时间:2014-11-27 07:26:27

标签: sql ruby-on-rails

我有一个用户模型和一个内容模型。当用户观看一段内容时,我需要确保用户在48小时内没有再看到该内容。

Rails建模的方法是什么?我希望有一个包含user_id,content_id和记录视图的时间戳的表,然后让工作人员清除带有时间戳>的条目。 2天。这样,当用户请求更多内容时,我可以过滤掉具有user_id和content_id匹配条目的内容。

不要认为这很重要,但我在MySQL上使用Rails 3.2。

1 个答案:

答案 0 :(得分:0)

我认为您可以在模型中执行以下操作。

class User < ActiveRecord::Base
   ...
   has_many :contents, -> {  where(["EXTRACT(HOUR FROM last_viewed_at) > ? OR last_viewed_at IS ?", 48, nil)}
end

我使用或者条件使它为零,因为它在初始化时或创建了新记录,以便用户能够看到它。

我不确定你是如何使用你的工人的。

如果我遗失任何东西,请建议我。我不打算准确回答,而是尝试一种方法,我可以意识到可能的。