我有一个Rails'remote_form_for,它基本上改变了一个字段的值,我希望有3个按钮。第一个按钮是保存字段的值。第二个按钮是保存值,然后调用Action1(例如,发送字段已更改的电子邮件)。第三个按钮是取消。
表单用
声明<% remote_form_for @post,
:url => { action => 'update_field1', :id => @post.id } do |f| %>
第一个按钮是
<%= f.submit "Save", :disable_with => "Please Wait" %>
如何实施第二个按钮?非常感谢!
答案 0 :(得分:3)
所以这并不是提交标签的工作原理,这是你问题的问题。提交导致表单提交,并且提交标记的目标由表单的目标控制,而不是由提交按钮本身控制。因此,无论你在提交标签中添加什么内容,它都会转到相同的控制器操作。
但是,您可以根据该控制器操作中的提交按钮来控制表单执行的操作。在控制器中尝试这样的事情:
case params[:commit]
when 'Save' then do_something
when 'Send Email' then do_something && send_email
end
每个提交按钮都会发送一个不同的提交参数,您可以根据该参数切换操作所执行的操作。