2008-11-02 140 views
5

在我的Rails應用程序中,我有三個模型,Projects,BlogPosts和Images。項目和BlogPosts可以有很多鏈接的圖像,並且圖像可以鏈接到Project,BlogPost或兩者。Rails協會,habtm?多態?都?

設置關聯以使其在Rails中工作的最佳方式是什麼?

回答

9

我想把這個habtm分解成一個單獨的模型類ImageLink。然後你會得到:

Project 
    has_many :image_links, :as => :resource 
BlogPost 
    has_many :image_links, :as => :resource 
ImageLink 
    belongs_to :image 
    belongs_to :resource, :polymorphic => true 
Image: 
    has_many :image_links 
+2

這是不是一個真正的「梳理出」的habtm,因爲它確實是同一個的habtm(與作爲ImageLink的的HABTM表),但這種方法的好處是,你把兩個房間合併成一個房間。 – 2008-11-03 08:30:57