我有3个模型,我希望能够使用Sample controller new action上的表单同时创建所有模型。
有没有办法让一个表单包含所有模型的所有表单字段?
这些是模型:
class Sample < ActiveRecord::Base
belongs_to :song
accepts_nested_attributes_for :song
end
class Song < ActiveRecord::Base
has_many :samples
belongs_to :artist
end
class Artist < ActiveRecord::Base
has_many :songs
end
这是我正在使用的形式,我能够创作新的歌曲,但不能创作艺术家。
<%= form_for(@sample) do |f| %>
<% if @sample.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@sample.errors.count, "error") %> prohibited this sample from being saved:</h2>
<ul>
<% @sample.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<%= f.fields_for :song do |song_form| %>
<div class="field">
<%= song_form.label "Song Name" %></br>
<%= song_form.text_field :name %>
</div>
<% end %>
<div class="field">
<%= f.label :timecode %><br>
<%= f.text_field :timecode %>
</div>
<div class="field">
<%= f.label :song_id %><br>
<%= f.collection_select(:song_id, @songs, :id, :name) %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
感谢您的帮助。