我有一个用户模型和一个内容模型。当用户观看一段内容时,我需要确保用户在48小时内没有再看到该内容。
Rails建模的方法是什么?我希望有一个包含user_id,content_id和记录视图的时间戳的表,然后让工作人员清除带有时间戳>的条目。 2天。这样,当用户请求更多内容时,我可以过滤掉具有user_id和content_id匹配条目的内容。
不要认为这很重要,但我在MySQL上使用Rails 3.2。
答案 0 :(得分:0)
我认为您可以在模型中执行以下操作。
class User < ActiveRecord::Base
...
has_many :contents, -> { where(["EXTRACT(HOUR FROM last_viewed_at) > ? OR last_viewed_at IS ?", 48, nil)}
end
我使用或者条件使它为零,因为它在初始化时或创建了新记录,以便用户能够看到它。
我不确定你是如何使用你的工人的。
如果我遗失任何东西,请建议我。我不打算准确回答,而是尝试一种方法,我可以意识到可能的。