【发布时间】:2020-08-20 04:05:36
【问题描述】:
我正在使用 public_activity gem、rails 6.0.3.2 和 ruby v2.71。
在列出跟踪活动的页面上,我想为记录列表中的每条记录放置一个销毁按钮。我已经用下面显示的代码做到了。但是,我收到路由错误。 rails 正在寻找的路线是
activity.id
我想要的路线是
activity/:id
这是 html (HAML) 视图的相关部分:
-@activities.each do |activity|
...<other code>...
.float-right
= link_to 'Destroy', activity_path(activity), method: :delete, data: { confirm: 'Are you sure?' }, class: 'btn btn-sm btn-danger'
这是我的 config/routes.rb 文件中的相关路由:
delete 'activity/:id', to: 'home#destroy_activity'
此路由返回一个错误,指出“没有路由匹配 [DELETE]”/activity.239”(显然每个记录 id 都不同)。
如果我将路线更改为:
delete 'activity.:id', to: 'home#destroy_activity'
但这对我来说看起来很奇怪,我宁愿使用“正常”的 rails 路线。
我做错了什么?
【问题讨论】:
-
Rails 的路线存在约定问题。尝试将
as: :delete添加到路由定义的末尾。
标签: ruby-on-rails routes