首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Rails 5:如何覆盖额外成员路由的路由参数

Rails 5:如何覆盖额外成员路由的路由参数
EN

Stack Overflow用户
提问于 2018-06-03 07:05:18
回答 1查看 737关注 0票数 1

在Rails 5中,我已经了解了如何

  1. Overwrite the route parameter from id to something like name
  2. Add another route for a resource

这样我的routes.rb看起来就像这样

代码语言:javascript
复制
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)

如何在覆盖参数的同时向资源添加额外的路由?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-03 08:00:30

您正在复制cats的路由条目,并且在缺少参数名称覆盖的条目上提供了用于声明preview路由的块。您需要在同一路由声明中提供覆盖和块。

代码语言:javascript
复制
Rails.application.routes.draw do

  resources :cats, param: :name do
    get :preview, on: :member
  end
end

这将为您提供所需的路由:

代码语言:javascript
复制
$ rake routes
           Prefix Verb   URI Pattern                      Controller#Action
      preview_cat GET    /cats/:name/preview(.:format)    cats#preview
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50661926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档