Rails形成多个动作的按钮

时间:2012-03-08 16:29:11

标签: ruby-on-rails forms button

我有一个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" %>

如何实施第二个按钮?非常感谢!

1 个答案:

答案 0 :(得分:3)

所以这并不是提交标签的工作原理,这是你问题的问题。提交导致表单提交,并且提交标记的目标由表单的目标控制,而不是由提交按钮本身控制。因此,无论你在提交标签中添加什么内容,它都会转到相同的控制器操作。

但是,您可以根据该控制器操作中的提交按钮来控制表单执行的操作。在控制器中尝试这样的事情:

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

每个提交按钮都会发送一个不同的提交参数,您可以根据该参数切换操作所执行的操作。