我在表单中有一个复选框列表,其中有两个按钮。我试图将单独的参数传递给按钮,如下所述:
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"}
答案 0 :(得分:1)
我最近遇到了这个问题。我在 simple_form_for 中有两个提交按钮。当我将表单发布到控制器时,缺少 :commit 参数。
我的解决方案是使用 jquery 捕获将提交值写入隐藏输入的提交的点击事件。然后我可以使用该输入值来控制控制器中的逻辑。