我有以下模型(简化):
class Job < ActiveRecord::Base
belongs_to :customer
has_one :priority
end
我正在尝试将所有作业一次性加载到一个显示客户和优先级的表中,因此我急于加载这两个关联以避免N + 1个查询:
Job.includes(:customer, :priority)
到目前为止一切顺利。当我想按客户名称订购时,问题就来了。按照Rails 4的说明,我这样做:
Job.includes(:customer, :priority).order("customers.name ASC")
ActiveRecord停止急切加载优先级!渲染表会导致对每个优先级单独进行查询。
作为旁注,AR正在自动进行连接而没有“.references(:customers)”。这似乎与文档相反。