這是我第一次使用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