我正在制作促销清单,其中每个促销都应该是可删除的。在视图中,对于每个促销,我都创建了一个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确认时 - 除了第一个之外它会适用于所有人,所以我删除了确认以查看是否有任何更改 - 但我仍然有这个问题。我还尝试通过控制器删除一些促销并测试新的“第一个”按钮 - 促销是什么并不重要,列表中的第一个按钮不起作用。任何帮助将不胜感激!
答案 0 :(得分:0)
事实证明,它与button_to
方法使用表单的事实有关,因此我们在表单中有表单(我没有意识到<%= @promotions.each %>
里面的表单是相关的,所以没有发布。)将button_to
更改为link_to
,并使用method: post
解决了我的问题。现在所有的“按钮”都可以正常工作!