Rails删除链接正在生成路由错误

时间:2016-07-29 20:50:49

标签: ruby-on-rails

我制作了一个购物车,每个产品都有一个删除链接,点击后会生成以下消息:

  

路由错误没有路由匹配[GET]" / order_items / 8"

每个链接生成的错误之间的唯一变化是order_item id。

代码如下:

<%= link_to "Delete", order_item, { data: { confirm: "Are you sure you wish to delete the product '#{order_item.product.name}' from your cart?" }, method: :delete, remote: true, class: "btn btn-danger" } %>

这是生成的链接:

<a data-confirm="Are you sure you wish to delete the product 'Name' from your cart?" class="btn btn-danger" data-remote="true" rel="nofollow" data-method="delete" href="/order_items/8">Delete</a>

这是路径文件中的相关数据:

resources :order_items, only: [:create, :update, :destroy]

单击时,会弹出警报,但日志显示:

  

删除http://localhost:3000/order_items/11 422(不可处理的实体)

我对代码的工作缺少什么。

2 个答案:

答案 0 :(得分:1)

我能够通过在布局的头部添加以下行来解决此问题:

<%= csrf_meta_tags %>

答案 1 :(得分:0)

替代方案可能是为[:delete, order_item]换取order_item

如:

<%= link_to "Delete", [:delete, order_item], { data: { confirm: "Are you sure you wish to delete the product '#{order_item.product.name}' from your cart?" }, remote: true, class: "btn btn-danger" } %>