如何在提交按钮上调用函数?

时间:2011-04-11 05:42:57

标签: ruby-on-rails-3 forms form-submit

我是rails的新手。我有一个邮件控制器和一个我通过脚手架创建的邮件表,在我的表中我有一个列current_status,我希望当我提交表单时 根据提交按钮类型设置状态,我有两个按钮,一个是保存并继续 其状态为“in_progress”,另一个是“保存在草稿中”状态保存为草稿,请帮帮我,我是怎么做到的?

2 个答案:

答案 0 :(得分:1)

我不确定你是否可以指定使用rails的表单生成器调用哪个函数(我假设javascript函数?)。 Rails非常重视一个表单,一个按钮(并且所有rails表单似乎都使用相同的自动生成表单功能)。

你可能会被卡住(如果你只做铁路)有一个下拉菜单或决定它是保存还是继续。

现在,如果你真的想拥有这样的条件按钮,你可能想看看从头开始做这个表单(使用ajax,javascript,等等),而不是让rails为你构建它。当你想要做真正基本的东西时,Rails非常简洁......但是整个过程都是常规而不是配置,所以当你想要得到它的幻想时,它会变得非常顽固。

编辑:您可以指定希望表单调用哪个控制器操作,但每个表单仍然是一个控制器。要有两种不同的可能性,你需要有两种形式(听起来不像你想要的那样?)

答案 1 :(得分:1)

如果您不想使用JavaScript,可以执行以下操作:

表单按钮:

<div class="action">
  <%= submit_tag 'Save', :name => 'save_button' %>
  <%= submit_tag 'Continue', :name => 'submit' %>
</div>

请注意每个提交按钮的名称。

在控制器中,您可以单独引用每个按钮,例如

params[:save_button]
params[:submit]

然后,您可以在每个按钮的create方法中包含特定逻辑,可能在if / elsif / else语句中。