我有一个模型用户和一个模型message.viewed_at
我想要做的是给用户,确定他们上次查看邮件的时间。
鉴于用户,我需要查找所有消息,然后按顶部最近的seen_at排序,然后获取该记录并输出Viewed_at时间戳(如果有)。
@user = User.find(2)
@user.find(:first, :conditions => user.messages.viewed_at != nil)
但这不起作用,建议?感谢
答案 0 :(得分:2)
@user.messages.first(:order => "viewed_at desc")
@user.messages.where("viewed_at is not null").order("viewed_at desc").first
答案 1 :(得分:1)
rails query guide是一个很好的资源。
JDL的上述答案将起作用。此外,不确定min / max是否适用于日期,但如果是,则以下方法可能更有效:
@user.messages.where("viewed_at is not null").maximum("viewed_at")