simple_form_for - 具有不同参数的多个提交按钮

时间:2017-08-08 15:57:13

标签: ruby-on-rails ruby

我在表单中有一个复选框列表,其中有两个按钮。我试图将单独的参数传递给按钮,如下所述:

Is there a way to pass params when clicking submit button in simple_form view in rails 3.2.12?

但它没有传递参数。我的代码如下:

<%= simple_form_for :pupils, url: edit_multiple_school_group_pupils_path(school, group) do |f| %>
  ...
  ...
  <%= f.button :submit, 'Change Levels', name: 'editing', value: 'levels' %>
  <%= f.button :submit, 'Move to A Class', name: 'editing', value: 'classes' %>
<% end %>

我尝试了其他各种方法,并且看过几篇关于给按钮分开id并调用params [:commit]的帖子,但是没有发送提交参数。

任何帮助都非常有用。

编辑:

表单按钮的HTML输出是:

<input type="submit" name="editing" value="levels" class="btn" />
<input type="submit" name="editing" value="classes" class="btn" />

Rails控制台日志:

Started POST "/school/2/classes/3/pupils/edit_multiple" for 127.0.0.1 at 2017-08-08 17:08:58 +0100
Processing by Schools::Admin::PupilsController#edit_multiple as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"0ncVG1+MfuS13ystwdUe/vEzF30f1iHS/F0u0DDflOXKnkw8hcUhv/n2eJZuZHOA4gZxuITahMFbyTdG/B5cEQ==", "pupil_ids"=>["134", "129"], "school_id"=>"2", "group_id"=>"3"}

1 个答案:

答案 0 :(得分:1)

我最近遇到了这个问题。我在 simple_form_for 中有两个提交按钮。当我将表单发布到控制器时,缺少 :commit 参数。

我的解决方案是使用 jquery 捕获将提交值写入隐藏输入的提交的点击事件。然后我可以使用该输入值来控制控制器中的逻辑。

相关问题