【发布时间】:2011-04-11 05:42:57
【问题描述】:
我是 Rails 的新手。我有一个邮件控制器和一个通过脚手架创建的邮件表,在我的表中我有一个列 current_status,我希望在提交表单时 状态是根据提交按钮类型设置的,我有两个按钮一个是保存并继续 状态为“in_progress”,另一个为“save in draft”,状态为草稿,请帮帮我,我该怎么做?
【问题讨论】:
标签: ruby-on-rails-3 forms form-submit
我是 Rails 的新手。我有一个邮件控制器和一个通过脚手架创建的邮件表,在我的表中我有一个列 current_status,我希望在提交表单时 状态是根据提交按钮类型设置的,我有两个按钮一个是保存并继续 状态为“in_progress”,另一个为“save in draft”,状态为草稿,请帮帮我,我该怎么做?
【问题讨论】:
标签: ruby-on-rails-3 forms form-submit
我不确定您是否可以指定要使用 rails 的表单生成器调用的函数(我假设是 javascript 函数?)。 Rails 非常重视一种表单、一个按钮(并且所有 Rails 表单似乎都使用相同的自动生成表单功能)。
您可能会卡住(如果您只使用 rails)有一个下拉菜单或任何决定它是保存还是继续的东西。
现在,如果你真的想要一个这样的条件按钮,你可能想看看从头开始(使用 ajax、javascript 等)而不是让 rails 为你构建它。当你想做一些非常基本的事情时,Rails 非常简洁......但重点是约定优于配置,所以当你想变得花哨时,它会变得非常顽固。
编辑:您可以指定您希望表单调用哪个控制器操作,但它仍然是每个表单一个控制器。要获得两种不同的可能性,您需要有两种形式(这听起来不像您要找的?)
【讨论】:
如果你不想使用 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 语句中。
【讨论】: