1

我有一个测试应用程序,我正在尝试设置实践,应用程序有用户,他们在注册时可以选择多达6个兴趣类别。具有多对多关系的模型

因此,用户可以有很多兴趣类别,这将有很多“子”兴趣......我有点困惑,我怎么能设置它,以便当用户注册时,他们可以选择通过用户注册表格上的复选框选择6个兴趣类别。

我应该使用多态关联,或者我应该创建一个兴趣和interest_category模型与用户模型和interest_category模型中使用类似:

has_many :interest_categories, :through => :interests ? 

另外,我怎么能得到的形式来保存这些interest_categories?我试过f.fields_for :interest_categories,但他们没有保存。

任何想法?

回答

0

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

通过这种方式,您将拥有与关系类型不可知的多种关系。

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

您也可能要考虑看​​着这Railscast:http://railscasts.com/episodes/17-habtm-checkboxes

这是一个有点过时,但多数在设置您的形式可能有所帮助。有很多方法可以解决这个问题,但这就是我要做的。

+0

谢谢Stone,我会看那个railscast。 – ThaDick

+0

随时让我知道它是怎么回事。 – Stone

相关问题