在Rails 5中,我已经了解了如何
这样我的routes.rb看起来就像这样
Rails.application.routes.draw do
resources :cats, param: :name
resources :cats do
get :preview, on: :member
end
end
但是,我注意到我的附加preview
路由没有保留被重写的命名路由参数。相反,在查看rake路径的输出时,我得到了如下所示的内容。
GET /cats/:id/preview(.:format)
当我期望并试图实现的是一条看起来像这样的路线
GET /cats/:name/preview(.:format)
如何在覆盖参数的同时向资源添加额外的路由?
发布于 2018-06-03 08:00:30
您正在复制cats
的路由条目,并且在缺少参数名称覆盖的条目上提供了用于声明preview
路由的块。您需要在同一路由声明中提供覆盖和块。
Rails.application.routes.draw do
resources :cats, param: :name do
get :preview, on: :member
end
end
这将为您提供所需的路由:
$ rake routes
Prefix Verb URI Pattern Controller#Action
preview_cat GET /cats/:name/preview(.:format) cats#preview
https://stackoverflow.com/questions/50661926
复制相似问题