如何在Rails中从同一页面提交多个重复的表单 – 最好只用一个按钮

在我的新视图页面中,我有:

   

现在,此表单包含以下字段: first_namelast_nameemail_addressmobile_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(); });