这是我第一次使用 Rails,我想知道是否可以在一个 SQL 查询中加载一个多态关联?它们之间的模型和关联足够基本:资产模型/表可以通过多态关联来引用内容(图像、文本或音频),即
资产类 < ActiveRecord::Base :belongs_to :content, :polymorphic => true 结尾
图像、文本、音频定义如下:
类图像 < ActiveRecord::Base :has_one :asset, :as => :content 结尾
当我尝试加载图像时,这样说:
图像.first( :条件 => {:id => id}, :include => :asset )
它指定了两个查询,一个用于检索图像,另一个用于检索资产(仅供参考,如果我指定 a 也会发生这种情况:joins
)。根据我的理解,ActiveRecord 这样做是因为它不知道 Image 和 Asset 之间存在一对一的关联。有没有办法强制加入并一次性检索 2 个对象?我也尝试过将 join 与自定义选择一起使用,但我最终不得不手动创建 ActiveRecord 模型及其关联。
ActiveRecord 是否提供了一种方法来做到这一点?