1
我的導軌應用程序中有以下設置: 用戶註冊並從一組音樂樣式的複選框中選擇。如何在模型中保存多對多關係
音樂風格現在只有4種,但應該可擴展。我希望有一個可以輕鬆擴展和更改的MusicStyles列表。
我的方法是創建一個模式「MusicStyles」和模式「UserMusicStyles」,然後用類似於has_many_through協會:
class User < ActiveRecord::Base
has_many :user_music_styles
has_many :music_styles, :through => :user_music_styles
end
class UserMusicStyle < ActiveRecord::Base
belongs_to :user
belongs_to :music_style
end
class MusicStyle < ActiveRecord::Base
has_many :music_styles
has_many :users, :through => :user_music_styles
end
現在,在註冊過程中我會做類似MusicStyle.all。每個做| m | ...顯示覆選框,但是如何在用戶控制器中將其正確保存到數據庫?
任何幫助非常感謝!
會那麼Rails會自動知道該如何保存?我的問題是關於如何在控制器中處理它以正確保存它。如果這很簡單,我會繼續嘗試 - 謝謝! – tomburger
你必須在'User'模型中設置'attr_accessible:music_style_ids',但是Rails應該知道如何自動保存它。 – Mischa
它的工作原理 - 非常感謝! – tomburger