2012-02-22 8 views
4

で:first_namelast_nameemail_addressmobile_number- 好ましくは1つのボタン私は私の新しいビューページで

<% 10.times do %> 
    <%= render 'group_member_form' %>  
<% end %> 

今、このフォームにはフィールドが含まれています。基本的には、すべてのフォームのフィールドを1回のクリックで入力できるようにしたい場合は、各フォームを一意の行/ IDとしてデータベースに送信します。

これを達成する最も簡単な方法は何ですか?

注:回数は変数から呼び出されます。どんなアドバイスもありがとうございます!

+0

あなたは今、フォームを持っているそれらのモデルhas_manyいくつかのモデルがあり、ここでfields_forメソッドを使用します – alony

答えて

12

フォームは1つのみです(フィールドはgroup_member_formの一部にする必要があります)。フォームが送信したときに、コントローラ内のparams[:members]はメンバーハッシュの配列となり、

<%= 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]" %> 

この方法で持っている必要があります。あなたのビューでは、のようなものを持っている必要があります。たとえば、フォームを送信した後の4人目のメンバーからメールアドレスを取得するには、params[:members][3][:email_adress]に電話してください。

http://guides.rubyonrails.org/form_helpers.html#understanding-parameter-naming-conventions:私はこのような_group_member_form.html.erbを書いた理由

理解するために、この一瞥を取ります。

+0

同様の質問:http://stackoverflow.com/questions/17775118/merge-two-forms-レールあなたは私を助けることができます –

+0

大きなアドバイス!ありがとう! – UKatz

0

また、モデルでaccepts_nested_attributes_forを使用し、フォームでfields_forを使用することもできます。

フォームがリモートの場合は、複数のフォームafaik、javascriptのみを提出します。それぞれフォームを実行して送信します。

$("form.class_of_forms").each(function() { 
    $(this).submit(); 
}); 
関連する問題