Jav*_*ish 1 ruby routing routes ruby-on-rails ruby-on-rails-5
在Rails 5中,我已经找到了解决方法
所以我的routes.rb看起来像这样
Rails.application.routes.draw do
resources :cats, param: :name
resources :cats do
get :preview, on: :member
end
end
Run Code Online (Sandbox Code Playgroud)
但是我注意到我的附加preview路由没有保留覆盖的命名路由参数.相反,当查看rake路由的输出时,我有一些看起来像这样的东西.
GET /cats/:id/preview(.:format)
当我期待并试图实现的是一条看起来像的路线
GET /cats/:name/preview(.:format)
如何既额外的路由添加到资源,同时覆盖参数?
您正在为您的路由条目复制cats,并且您已经提供了用于preview在条目上声明路径的块,而该路径缺少param名称覆盖.您需要在同一路由声明中提供覆盖和块.
Rails.application.routes.draw do
resources :cats, param: :name do
get :preview, on: :member
end
end
Run Code Online (Sandbox Code Playgroud)
这为您提供了您想要的路线:
$ rake routes
Prefix Verb URI Pattern Controller#Action
preview_cat GET /cats/:name/preview(.:format) cats#preview
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
252 次 |
| 最近记录: |