2012-03-08 23 views
1

私はRailsのremote_form_forを使って基本的にフィールドの値を変更しています.3つのボタンが必要です。最初のボタンは、フィールドの値を保存することです。 2番目のボタンは、値を保存してAction1を呼び出すことです(たとえば、フィールドが変更されたというメールを送信する)。 3番目のボタンはキャンセルすることです。Railsは複数のアクションにボタンをつけます

フォームは、最初のボタンは、私は第二ボタンを実装するにはどうすればよい

<%= f.submit "Save", :disable_with => "Please Wait" %> 

ある

<% remote_form_for @post, 
    :url => { action => 'update_field1', :id => @post.id } do |f| %> 

で宣言されていますか?本当にありがとう!

答えて

3

これは実際にタグを送信する方法ではありません。あなたの質問に問題があります。 Submitを実行するとフォームが送信され、submitタグの宛先は送信ボタン自体ではなくフォームの宛先によって制御されます。したがって、送信タグに何を入れるかは関係ありません。常に同じコントローラーアクションになります。

ただし、その1つのコントローラーアクションの送信ボタンに基づいてフォームの動作を制御することはできます。お使いのコントローラにこのような何かを試してみてください:

case params[:commit] 
when 'Save' then do_something 
when 'Send Email' then do_something && send_email 
end 

は、各ボタンが異なるコミットのparamが送信されます、そしてあなたは、アクションはそのPARAMに応じないものを切り替えることができ提出します。

+0

それは意味があります、それは私が探しているものです。しかし、初めてフィールドを編集して「Send Email」ボタンをクリックすると、params [:commit] == 'Send Email'が表示されます。その後、[Send Email]ボタンをクリックするたびに、params [:commit] == 'Save'をクリックします。私はページをリフレッシュすると、再び働きました。参考までに、私はsend_emailへのredirect_toコントローラとアクションを使用しています。 – rapidror

+0

これを理解するまでには数時間かかりました。ここにあります:http://harryche2008.wordpress.com/2008/08/01/how-to-use-multiple-submit-buttons-for-ajax-formsform_remote/また、http://stackoverflow.com/questions/ 2702194/rails-remote-form-for-not-playing-nicely-with-multiple-submit-tags – rapidror

関連する問題