具有多对多关系的模型

时间:2011-12-08 21:24:10

标签: ruby-on-rails many-to-many models polymorphic-associations

我有一个测试应用程序,我正在尝试设置练习,该应用程序有用户,他们可以在注册时选择最多6个兴趣类别。

所以,用户可以有很多兴趣类别,这会有很多“次”兴趣...我对如何设置它有点困惑,所以当用户注册时,他们可以选择6通过用户注册表单上的复选框进行兴趣类别。

我应该使用多态关联,还是应该使用用户模型和interest_category模型创建感兴趣的interest_category模型,如下所示:

has_many :interest_categories, :through => :interests ?

另外,如何让表单保存这些interest_categories?我试过了f.fields_for :interest_categories,但他们没有保存。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我会使用has_many :categories, :through => :categorizables。然后,您可以将名为:category_type的字符串字段添加到Categorizable模型,并为此案例输入“interest”,为其他案例输入另一个字符串。

通过这种方式,您可以拥有许多与关系类型无关的关系。

然后,您可以按User.categorizables.where(:category_type => "interest")查询或设置范围。

您也可以考虑观看此Railscast:http://railscasts.com/episodes/17-habtm-checkboxes

它有点过时,但很可能有助于设置表单。有很多方法可以解决这个问题,但这就是我的方法。