Ruby on rails 无法删除数据库和视图中的项
我有两个表类别,产品。产品有外键类。我正在尝试通过index.html.erb删除产品中的(视图中),代码如下:Ruby on rails 无法删除数据库和视图中的项,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有两个表类别,产品。产品有外键类。我正在尝试通过index.html.erb删除产品中的(视图中),代码如下: <td><%= link_to 'Destroy', category_product_path(product), method: :delete, data: { confirm: 'Are you sure?' } %></td> 首先,为什么我会遇到这个错误,在routes或rake routes中没有“/categories/produ
<td><%= link_to 'Destroy', category_product_path(product), method: :delete, data: { confirm: 'Are you sure?' } %></td>
首先,为什么我会遇到这个错误,在routes或rake routes中没有“/categories/product/products”url?下面是rake routes命令(省略designe routes):
编辑:通过放置以下内容解决了此问题:
resources :categories do
resources :products, shallow: true
end
在routes.rb中,只允许在“delete”链接中使用“product”…因为它是嵌套路由,所以需要在路由中传递类别id。比如:
<%= link_to 'Destroy', category_product_path(product, category_id: category.id), method: :delete, data: { confirm: 'Are you sure?' } %>
这里,在路径类别产品路径(产品,类别id:category.id)
中,类别是产品所属的类别
您还可以使用category\u product\u路径(product,category\u id:product.category.id)
作为删除路径。使用
resources :categories do
resources :products, shallow: true
我只能使用“product”作为url/路径在使用上述代码时,您是否可以发布当前错误消息?完全相同。答案已编辑。尝试
category\u product\u path(product,category\u id:product.category.id)
我实际上解决了url问题-使用资源,shall:true我现在可以只使用“product”!非常感谢。然而,我现在有一个“销毁”方法错误,我将发布。在链接到“销毁”,类别产品路径(产品)
,什么是产品
?如果您已经将路径定义为获取/类别/:id/products/new
,为什么会有GET/categories/:category\u id/products/new
?对于下面的其他3条路线也一样。如果你找到了解决问题的方法,可以考虑将它作为答案而不是在问题本身中进行编辑。
<%= link_to 'Destroy', category_product_path(product, category_id: category.id), method: :delete, data: { confirm: 'Are you sure?' } %>
resources :categories do
resources :products, shallow: true