私はこのフォームを持っています:
<% form_tag add_expt_details_samples_path, :method => :post do %>
<% for sample in @samples %>
<% if sample.study_id == @study.id %>
<% fields_for "samples[]", sample do |form| %>
<fieldset>
<legend>Sample Name: <%= sample.name %></legend>
<p><center><%= form.label :sample_title %>
<%= form.text_field :sample_title, :size => 25 %></center></p>
<table>
<tr>
<td>
<%= form.label :taxon_id %>
<%= form.text_field :taxon_id, :size => 15 %>
</td>
<td>
<%= form.label :scientific_name %>
<%= form.text_field :scientific_name, :size => 20 %>
</td>
<td>
<%= form.label :common_name %>
<%= form.text_field :common_name, :size => 15 %>
</td>
</tr>
</table>
<p>
<center>
<%= form.label :sample_descripition %><br \>
<%= form.text_area :description %>
</center>
</p>
</fieldset>
<% end %>
<% end %>
<% end %>
<p><center><%= submit_tag "Next" %></center></p>
<% end %>
サンプル [] ID の新しいモデル レコードを追加するためのポスト メソッド ビューをレンダリングできるように、add_expt_details アクションでサンプル [] を収集したいと思います。
私の行動は次のとおりです
def add_expt_details
# Collect the samples that were sent
@expt_samples = Sample.find(params[:samples])
# @expt_samples.each do |samp|
# samp.expts.build
# end
end
次に、サンプルの詳細が更新され、expt 値を作成できる作成アクションにそれらを送信します。
def create_study
@samples = Sample.update(params[:samples].keys, params[:samples].values).reject { |p| p.errors.empty? }
if @samples.empty?
flash[:notice] = "Samples updated"
redirect_to :action => "add_expt_details", :anchor => "ok"
else
render :action => 'edit_individual'
end
end
これを達成する方法はありますか?accepted_nested_attributes_for :expts, :dependent => :destroy を使用しました。しかし、どこか間違っているようで、多くのフィールドを持つフォームを持ちたくありません。
表示されるエラー メッセージは「不明なキー: 3、6、12」です。
すべての提案を歓迎します。