0

我正在制作一个促销列表,其中每个都应该是可删除的。在视图中,对于每个促销活动,我制作了一个 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 %>

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

4

1 回答 1

0

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

于 2015-05-13T18:22:18.103 回答