2012-03-08 75 views
1

我有一個Rails的remote_form_for基本上改變了一個字段的值,我想要3個按鈕。第一個按鈕是保存字段的值。第二個按鈕是保存值,然後調用Action1(例如,發送一封電子郵件,說明該字段已更改)。第三個按鈕是取消。Rails窗體按鈕到多個動作

的形式宣佈與

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

第一個按鈕是

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

如何實現第二個按鈕?非常感謝!

回答

3

所以這不是真的如何提交標籤的工作,是您的問題的問題。提交會導致表單提交,並且提交標記的目標由表單的目標控制,而不是由提交按鈕本身控制。因此,無論您將哪些內容放在提交標記中,它總是會轉到相同的控制器操作。

但是,您可以根據該控制器操作中的提交按鈕來控制表單的功能。嘗試這樣的事情在你的控制器:

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

每個提交按鈕會發出不同的提交PARAM,並且可以切換動作並不取決於PARAM什麼。

+0

這很有道理,這就是我要找的。但是,我第一次編輯該字段並單擊「發送電子郵件」按鈕,params [:commit] =='發送電子郵件'。隨後每次點擊「發送電子郵件」按鈕,params [:commit] =='Save'。當我刷新頁面時,它再次運行。僅供參考,我正在使用redirect_to控制器並對send_email執行操作。 – rapidror 2012-03-08 21:58:54

+0

花了幾個小時才弄明白這一點。這是它:http://harryche2008.wordpress.com/2008/08/01/how-to-use-multiple-submit-buttons-for-ajax-formsform_remote/另外,http://stackoverflow.com/questions/ 2702194/Rails的遠程型換不扮演,很好地與 - 多提交標籤 – rapidror 2012-03-09 00:51:45