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

相關問題