私のモデルのエントリを作成するために使用されるフォームがありますConsultStat
。複数のエントリを 1 つのフォームに入力してから、コントローラーでそれらを分離し、個別にデータベースに保存できるようにしたいと考えています。
jQuery を使用してフォームに行を追加しています。以下に示すすべてのものを複製し<div class="form-group">
ます。
form_tag
動作しないと思われるため、を使用してform_for
います(複数が指定された場合、最後のエントリのみを受け入れるようです。
形
<%= form_tag add_multiple_stats_path do %>
<div class="form-inputs">
<!-- This section gets replicated with jQuery -->
<div class="form-group">
<div class="row">
<div class="col-md-3">
<%= label_tag :employee, "Employee" %>
<%= select("consult_stat", "employee_id", @employees.collect {|p| [ p.name, p.id ] }, {include_blank: true}, style: "width:100%") %>
<%# input :employee_id, as: :select, collection: Employee.all, label_method: :name, value_method: :id %><br>
</div>
<div class="col-sm-1">
<%= label_tag :consults, "Consults" %>
<%= number_field_tag :consults, nil, class: "form-input", label: "Consults" %><br>
</div>
<div class="col-sm-1">
<%= label_tag :signed, "Signed" %>
<%= number_field_tag :signed, nil, class: "form-input" %><br>
</div>
</div>
</div>
<!-- END section that gets replicated with jQuery -->
</div>
<%= submit_tag "Submit Consultation Stats" %>
<% end %>
ルート
post "/add_multiple_stats" => "consult_stats#add_multiple_stats", as: :add_multiple_stats
コントローラ
def add_multiple_stats
@employees = Employee.all
params["consult_stat"].each do |stat|
puts stat
# there is only 1 entry showing, even if I submit multiple entries
end
end