Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails-构建ActiveRecord查询?_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails Rails-构建ActiveRecord查询?

Ruby on rails Rails-构建ActiveRecord查询?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我有一个模型用户和一条模型消息 我想做的是给一个用户,确定他们最后一次查看消息的时间(如果有) 给定用户,我需要找到所有这些消息,然后在顶部按最近查看的\u排序,然后获取该记录并在时间戳(如果有)输出查看的\u @user = User.find(2) @user.find(:first, :conditions => user.messages.viewed_at != nil) 但那不行,建议?感谢@user.messages。首先(:order=>“在desc查看”) @user

我有一个模型用户和一条模型消息

我想做的是给一个用户,确定他们最后一次查看消息的时间(如果有)

给定用户,我需要找到所有这些消息,然后在顶部按最近查看的\u排序,然后获取该记录并在时间戳(如果有)输出查看的\u

@user = User.find(2)
@user.find(:first, :conditions => user.messages.viewed_at != nil)
但那不行,建议?感谢

@user.messages。首先(:order=>“在desc查看”)

@user.messages.where(“查看时不为空”).order(“查看时描述”).first
@user.messages.first(:order=>“查看时描述”)

@user.messages.where(“查看的位置不为空”).order(“查看的位置描述”)。首先

是一个很好的资源

JDL上面的答案将起作用。此外,不确定“最小值/最大值”是否适用于日期,但如果适用,以下方法可能更有效:

@user.messages.where("viewed_at is not null").maximum("viewed_at")
这是一个很好的资源

JDL上面的答案将起作用。此外,不确定“最小值/最大值”是否适用于日期,但如果适用,以下方法可能更有效:

@user.messages.where("viewed_at is not null").maximum("viewed_at")

在rails 3中,:conditions语法已弃用。如果您不熟悉新语法,则没有问题。在rails 3中,:conditions语法已弃用。如果您不熟悉新语法,则没有问题。谢谢,但这不起作用,因为用户有多条消息,其中一些消息的“已查看”值为零。上面的查询正在拉入第一条记录,可能是nil。这是我想避免的。谢谢,但这不起作用,因为一个用户有几条消息,其中一些消息的浏览量为零。上面的查询正在拉入第一条记录,可能是nil。这是我想要避免的。