2008-11-02 76 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