当远程为true时,submit_tag值不作为参数传递

时间:2014-08-14 14:13:00

标签: ruby-on-rails ruby-on-rails-4

我有一个结果列表,其中用户有2个选项保存|删除单个或多个记录。为此,我有2个submit_tags

所以我什么时候

<%= form_tag some_path do %>
  <%= submit_tag "Hello World" %>
<% end %>

submit_tag {...,'commit'=>'Hello World'}在参数hash

中传递给控制器

但是一旦做到远程真实

<%= form_tag some_path, remote:true do %>
  <%= submit_tag "Hello World" %>
<% end %>

省略提交值!

任何想法我该如何解决?我需要用户在保存/删除记录时保持同一页面...所以远程:true是强制性的,因为有2个提交,我需要一些逻辑来在控制器中执行不同的操作。

谢谢,

1 个答案:

答案 0 :(得分:0)

我刚遇到相同或类似的问题,我想分享我的解决方案。就我而言,我有一个这样定义的表单:

<%= form_tag url, remote: true do %>
  ...
  <%= submit_tag t('.simulate'), id: 'btn_simulate', onClick: 'showSpinner()' %>
<% end %>

单击该按钮时,发送的请求没有任何参数。

事实证明问题是由 onClick 选项引起的。我删除它后,表单按预期工作。为了重新启用onClick行为,我为&#39; ajax添加了一个事件处理程序:之前&#39;形式。