双向habtm链接

时间:2010-04-28 20:36:00

标签: ruby-on-rails ruby database activerecord ruby-on-rails-plugins

我有两组模型的应用程序 - 基于内容(新闻,问题)和基于“某些东西”(设备,应用程序等)。我需要在组之间链接所有模型 - 例如问题可能属于3种不同的东西 - 一个应用程序和两个设备。同样 - 对于新闻。从另一方面 - 我需要查看与某些应用程序或设备相关的所有新闻文章和问题。

知道如何在rails中开发这个吗?我只有一个想法 - mixins将方法content_id和thing_id添加到模型和连接表。

2 个答案:

答案 0 :(得分:1)

你可以在连接表中使用thing_id,thing_class,content_id,content_class并搜索条件,habtm是不可能的。 “2,'设计','页',2” “2,'设计','广告',4” “2,'AnotherThing','Page',2”

然后从连接表中获取所有页面的内容,其中id = self.id AND thing_class = self.class.name AND contant_class = Page.class.name

如果您需要使用habtm关联,您可以使用STI + 1:1关联,但这会使事情更加混乱

答案 1 :(得分:0)

解决了has_many_polymorphs插件 - http://github.com/fauna/has_many_polymorphs