Rails:简单形式外的多个提交按钮

时间:2015-10-30 12:05:30

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.2 ruby-on-rails-3.1

假设我有一个文章模型,并且在文章模型'设置'视图中,我在表单之外有两个提交按钮,“更新详细信息”和“下一个模板”。

我的问题是如何知道在控制器中点击了哪个按钮。两个提交按钮都在一个简单的表单之外。 我尝试过:

<div>
  <select data-dojo-props='label:"${i18n.mySelectorLabel}"'>
  </select>
</div>

并且控制器上的逻辑相同

 <%= f.submit "update Details",name: "update_details", class: "x-update" %>


<%= f.submit 'Next Template', name: "next_template", class: "x-next" %>

但它不起作用。我怎么做?我无法改变路线,所以有没有办法发送一个由[:params]拾取的另一个变量?

4 个答案:

答案 0 :(得分:1)

我认为你可以这样做:

npm install -g

可选地,我认为您可以使用相同的名称和不同的值。

ionic lib update

在控制器中:

<%= f.submit "update Details",name: "update_details", value: true, class: "x-update" %>
<%= f.submit 'Next Template', name: "next_template", value: true, class: "x-next" %>

答案 1 :(得分:0)

我通过输入我们的html表单模板来解决它:

<input type="hidden" name= "action_type" id="action_type">

然后在JavaScript文件中我们添加了

$('.x-update').on 'click', ->
$("#action_type").val("exit")
$("#details-form").submit()

然后在控制器文件中我们检查了参数:

if params[:action_type] == "exit"
  redirect_to #your desired path
else
  redirect_to #based on given path

那是它。它有效。

答案 2 :(得分:0)

尝试在控制器中检查触发提交时获得的参数。

render plain: params

附加您可以在表单旁边使用“hidden_​​field_tag”选项。

<%= hidden_field_tag 'plan', params[:plan] = 2 %>

答案 3 :(得分:-1)

请尝试将两个按钮放在窗体中,然后尝试使用相同的逻辑。