2017-09-01 19 views
0

javascriptを使用せずに2つのフォームを1つのビューに表示し、送信ボタンを1つクリックして送信する方法はありますか?Rubyは1つの送信ボタンで2つのフォームを提出します

私は私の意見では、以下があります:あなたはプレーンなHTMLでform_forヘルパーを置き換えることができます

def registration 
    @event=Event.find(params[:id]) 
    @attendee=Attendee.new 
    @event_attendee = EventAttendee.new 
    end 
+2

いいえ、JavaScriptを使用しないでください。 –

+0

それを得ました!どうもありがとうございました。 :) – Acrux

+0

出席者とイベント出席者の関係がわかっているので、2つの書式は必要ありません。これは、出席者がイベントとイベントに属していることを示しています。出席者はこれだけですあなたは 'fields_for'でsingle.formを使用し、2つのフォームをsingle.oneにマージすることができます。詳細はこちらhttps://apidock.com/rails/ActionView/Helpers/FormHelper/fields_forを確認してください –

答えて

0

<%= form_tag(registration_path, method: "post") do %> 
    <input type="text" id="attendee[name]"> 
    <input type="text" id="event_attendee[attendee_id]"> 
    <input type="text" id="event_attendee[event_id]"> 
    <%= submit_tag('Submit form') %> 
<% end %> 

から次

<%= form_for(@attendee) do |f| %> 
    <div class="field"> 
    <%= f.label :name %><br> 
    <%= f.text_field :name %> 
    </div> 
    <div class="actions"> 
    <%= f.submit %> 
    </div> 
<% end %> 

<%= form_for(@event_attendee) do |f| %> 
    <div class="field"> 
    <%= f.label :attendee_id %><br> 
    <%= f.number_field :attendee_id %> 
    </div> 
    <div class="field"> 
    <%= f.label :event_id %><br> 
    <%= f.number_field :event_id %> 
    </div> 
    <div class="actions"> 
    <%= f.submit %> 
    </div> 
<% end %> 

は私のコントローラであり、あなたのコントローラーはこれらのパラメーターを受け取ります:

{ 
    attendee: { name: 'Alex' }, 
    event_attendee: { attendee_id: 20, event_id: 30 } 
} 

これらのパラメータで、さらに必要なことを行うことができます。

関連する問題