Rails - 构建ActiveRecord查询?

时间:2011-03-04 18:13:18

标签: ruby-on-rails ruby-on-rails-3

我有一个模型用户和一个模型message.viewed_at

我想要做的是给用户,确定他们上次查看邮件的时间。

鉴于用户,我需要查找所有消息,然后按顶部最近的seen_at排序,然后获取该记录并输出Viewed_at时间戳(如果有)。

@user = User.find(2)
@user.find(:first, :conditions => user.messages.viewed_at != nil)

但这不起作用,建议?感谢

2 个答案:

答案 0 :(得分:2)

@user.messages.first(:order => "viewed_at desc")

Here are the docs.

@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")