这是我的模型设置。
乐队模型
has_many :bands_genres
has_many :genres, :through => :bands_genres
流派模式
has_many :bands_genres
has_many :bands, :through => :bands_genres
BandsGenre模型
belongs_to :band
belongs_to :genre
我有一个表单,您可以在其中添加一个新乐队,然后从下拉字段中选择一个类型,该类型来自genre
模型中的预设类型。
所以我最终需要做的是设置一个表单,以便当乐队添加乐队并选择一个类型时,它会在bands_genre
模型中创建正确的连接。
不知道从哪里开始为此设置表单,控制器和模型。
我正在运行Rails 3.0.3
答案 0 :(得分:1)
由于它是一个受欢迎的用例,因此有很多文字/视频演员报道此内容。我鼓励你看看: http://railscasts.com/episodes/73-complex-forms-part-1或其等效的asciicast(这是一个基于文本的视频演员)。
此外,我建议你使用formtastic。自动管理关联,因此它使表单构建变得微不足道,并使代码保持整洁。是的,也有演员阵容。 http://railscasts.com/episodes/184-formtastic-part-1
答案 1 :(得分:0)
修改强>
乐队模型
has_many :genres, :as => :band_genres
流派模式
has_many :bands, :as => :band_genres
您的流派表格为band_id
,您的乐队表格为genre_id
。
<强> bands_controller 强>
def new
@genres = Genre.all
@post = Post.new
end
<强>文章/ new.html.haml 强> (这部分我有点不确定,但大致如此)
- form_for @post do |f|
= f.select :genre_id, @genres, {}
= f.submit