Rails button_to不适用于某些按钮,为.each中的其他按钮工作

时间:2015-05-13 17:27:07

标签: ruby-on-rails forms button-to

我正在制作促销清单,其中每个促销都应该是可删除的。在视图中,对于每个促销,我都创建了一个button_to按钮,该按钮在单击时应该在控制器中运行删除操作。但是,除FIRST按钮外的所有按钮都能正常工作。换句话说,第一个按钮不起作用。

促销控制器中的

  def delete
    flash[:success] = 'Your promotion has been successfully deleted!'
    redirect_to('/promotions')
  end
促销视图中的

<% @promotions.each do |p| %>
   <tr>
     <td>
       .
       .
       .
       .
     </td>
     <td>  <%= button_to "Delete" , promotions_delete_path(params:      {promo_code: p.promo_code }),
     method: :post, class: "btn btn-danger btn-xs" %></td>

     <% end %>

我真的不明白为什么会这样。每个按钮,但第一个按钮重新加载页面并成功渲染闪光灯。同样的事情发生在我尝试使用javascript确认时 - 除了第一个之外它会适用于所有人,所以我删除了确认以查看是否有任何更改 - 但我仍然有这个问题。我还尝试通过控制器删除一些促销并测试新的“第一个”按钮 - 促销是什么并不重要,列表中的第一个按钮不起作用。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

事实证明,它与button_to方法使用表单的事实有关,因此我们在表单中有表单(我没有意识到<%= @promotions.each %>里面的表单是相关的,所以没有发布。)将button_to更改为link_to,并使用method: post解决了我的问题。现在所有的“按钮”都可以正常工作!