0

我有一个订阅应用程序,其中包含用户、订单和 DeliverySchedules(以及其他使 has_many :through 成为必需而不是 has_many 的模型)。

class User < ActiveRecord::Base
    has_many :orders
    has_many :deliveryschedules, :through => :orders

class Deliveryschedule < ActiveRecord::Base
    has_many :orders
    has_many :users, :through => :orders

class Order < ActiveRecord::Base
    belongs_to :user
    belongs_to :deliveryschedule

我的问题是,为什么

@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

我的应用程序正在运行,但我觉得我在这里遗漏了一些基本的东西,我无法在文档中找到。

4

1 回答 1

0

这是正常的数据库行为。从数据库返回的记录顺序是不确定的,除非您专门使用ORDER BY. 因此,两个不同的查询可能会以不同的顺序返回行。

于 2012-08-28T17:23:38.857 回答