Ruby on rails 3 ActiveRecord::Relation.last不一致的结果
我有一个订阅应用程序,其中包含用户、订单和交付计划(以及其他使has\u many:through成为必需而不是has\u many的模型) 返回不同于Ruby on rails 3 ActiveRecord::Relation.last不一致的结果,ruby-on-rails-3,activerecord,Ruby On Rails 3,Activerecord,我有一个订阅应用程序,其中包含用户、订单和交付计划(以及其他使has\u many:through成为必需而不是has\u many的模型) 返回不同于 @allusers.each do |t| t.deliveryschedules.last.delivery_date end 我的应用程序正在运行,但我觉得我缺少一些基本的东西,我无法在文档中找到。这是正常的数据库行为。从数据库返回的记录的顺序是不确定的,除非您专门使用orderby。因此,两个不同的查询可能会以不同的顺序返回行。
@allusers.each do |t|
t.deliveryschedules.last.delivery_date
end
我的应用程序正在运行,但我觉得我缺少一些基本的东西,我无法在文档中找到。这是正常的数据库行为。从数据库返回的记录的顺序是不确定的,除非您专门使用
orderby
。因此,两个不同的查询可能会以不同的顺序返回行。但我不明白的是,这两个不同的查询是怎么回事?此外,我似乎不能按ActiveRecord::Relations进行订购-有没有一种简单的方法可以确保我从deliveryschedules表中获取最后一个ID?@RubyNoob是-如果您使用.ORDER(:ID)
来获取.last
的任何关系,您都可以确保获取最后一个ID。
@allusers.each do |t|
User.find_by_id(t.id).deliveryschedules.last.delivery_date
end
@allusers.each do |t|
t.deliveryschedules.last.delivery_date
end