这是我第一次使用Rails,我想知道是否有可能在一个SQL查询中加载一个多态关联?这些模型和它们之间的关联是基本够用了:一个资产模型/表可以参考内容(无论是图片,文字或音频)通过一个多态关联,即在ActiveRecord中急切加载多态关联
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 )
它指定了两个查询,来检索图像和其他检索在A sset(FYI,如果我指定:joins
,也会发生这种情况)。基于我的理解,ActiveRecord这样做是因为它不知道Image和Asset之间存在一对一关联。有没有办法强制加入并一次检索2个对象?我也尝试使用自定义选择连接,但我最终不得不手动创建ActiveRecord模型及其关联。
ActiveRecord是否提供了一种方法来执行此操作?
我通常不再使用ORM。这是一个抽象,我没有做得很好。 – Mario