2012-01-27 124 views
0

我有一個場景,我現在有Page模型,現在每個頁面都可以是一個類型。可以說,頁面可以是類型視頻或圖像和許多其他類型。由於視頻和圖像有他們自己的模型,我想使這個頁面變得多態。在軌道中可能嗎?多個模型的多態關聯

class Page < ActiveRecord::Base 
    belongs_to :pageable, :polymorphic => true 
end 

class Video < ActiveRecord::Base 
    has_one :page, :as => :pageable, :class_name => 'Video' 
end 

class Image < ActiveRecord::Base 
    has_one :page, :as => :pageable, :class_name => 'Image' 
end 

這有效嗎?我的要求是,在創建頁面時,需要選擇其中一種類型,然後選擇它轉發到視頻或圖像格式。

回答

0

其有效。這是爲多態關聯提供的。你不需要「:class_name => 'Video'雖然,你可以放心地刪除它。

+0

謝謝Swanand,但在我的情況下,頁擁有視頻或圖像,主要是在多態關聯的多態對象是其他人擁有,如郵政或文章有評論,在這種情況下,評論是多態的。我上面的代碼片斷還表明,頁面是由圖像或視頻擁有,但其他方式,我只想問,上面的代碼段將適用於我的場景或不? ?如果不會,那麼我需要爲此做些什麼改變。 – 2012-01-27 18:38:28