如何在Rails中从同一页面提交多个重复的表单 – 最好只用一个按钮
在我的新视图页面中,我有:
现在,此表单包含以下字段: first_name
, last_name
, email_address
和mobile_number
。 基本上我希望能够在一次点击中填写所有表单的字段,然后将每个表单作为唯一的行/ id提交到数据库中。
最简单的方法是什么?
注意:从变量调用do的次数。 欢迎任何建议,谢谢!
您应该只有一个表单(您应该只在group_member_form
部分中放置字段)。 在你看来,你应该有类似的东西:
<%= form_tag "/members" do %> <% 10.times do %> <%= render 'group_member_form' %> <% end %> <%= submit_tag "Submit" %> <% end %>
在_group_member_form.html.erb
你应该有
<%= text_field_tag "members[][first_name]" %> <%= text_field_tag "members[][last_name]" %> <%= text_field_tag "members[][email_address]" %> <%= text_field_tag "members[][mobile_number]" %>
这样,当表单提交时,控制器中的params[:members]
将是一个成员哈希数组。 因此,例如,要在提交表单后从第四个成员获取电子邮件地址,请调用params[:members][3][:email_adress]
。
要理解为什么我这样写了_group_member_form.html.erb
, _group_member_form.html.erb
一眼:
http://guides.rubyonrails.org/form_helpers.html#understanding-parameter-naming-conventions 。
您还可以在模型中使用accepts_nested_attributes_for,并在表单上使用fields_for。
提交多个表单,afaik,只有javascript,如果表单是远程的:true,你运行每个表单,然后提交。
$("form.class_of_forms").each(function() { $(this).submit(); });