0
我有3個模型,我希望能夠使用Sample controller新動作上的表單同時創建它們。在Rails中嵌入多個模型的表格
有沒有一種方法,我可以有一個窗體的所有模型的所有表單域?
這些機型:
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 %>
感謝您的幫助。
我看過RailsCast,但它似乎是has_many模型,而我的示例模型是belongs_to,它似乎搞亂了嵌套窗體,但邏輯示例需要是belongs_to – dashedstripes