渴望在ActiveRecord中加载多态关联

Way*_*See 6 activerecord ruby-on-rails polymorphic-associations

这是我第一次使用Rails,我想知道是否可以在一个SQL查询中加载一个多态关联?它们之间的模型和关联足够基本:资产模型/表可以通过多态关联引用内容(图像,文本或音频),即

class Asset < ActiveRecord::Base
  :belongs_to :content, :polymorphic => true
end

图像,文本,音频定义如下:

class Image < ActiveRecord::Base
  :has_one :asset, :as => :content
end

当我尝试加载图片时,请这样说:

Image.first(
      :conditions => {:id => id},
      :include => :asset
)

它指定了两个查询,一个用于检索Image,另一个用于检索资产(FYI,如果我指定a,也会发生这种情况:joins).根据我的理解,ActiveRecord这样做是因为它不知道Image和Asset之间存在一对一的关联.有没有办法强制连接并一次检索2个对象?我也尝试使用自定义选择连接,但我最终必须手动创建ActiveRecord模型及其关联.

ActiveRecord是否提供了这样做的方法?

Way*_*See 2

在深入研究 Rails 源代码后,我发现您可以通过在 select、conditions 或 order 子句中引用当前模型以外的表来强制连接。

因此,如果我在资产表上指定订单:

图片.first(
      :条件=> {:id => id},
      :包括=>:资产,
      :order => "资产.id"
)

生成的 SQL 将使用左外连接以及一条语句中的所有内容。我更喜欢内部联接,但我想现在就可以了。