首页 > 解决方案 > Rails 6 路线 - 如何添加自定义“新”路线?

问题描述

我想添加一个自定义的 rails 路线 - 默认方式是这样的:

/cars/new

我想保持这条路线可用,并且还想添加这样的路线:

/cars/new/:manufacturer_slug

然后只是在视图/控制器中检查参数中的内容并基于该显示不同的内容。

我怎么做?

我试图通过资源添加它,比如

resources :end do
  get 'new/:manufacturer_slug',                   to: 'cars#new'
end

或者

resources :end do
  member do
    get 'new/:manufacturer_slug',                   to: 'cars#new'
  end
end

但是这两个版本都不起作用-在这两种情况下,我都会收到有关错误 URL 的错误。

标签: ruby-on-railsrubyroutes

解决方案


resources :cars do
  collection do
    get 'new/:manufacturer_slug', to: 'cars#new'
  end
end

或者

get 'cars/new/:manufacturer_slug', to: 'cars#new'

用 . 检查结果rails routes

或者您可以在 url 末尾添加参数: /cars/new?manufacturer_slug=anything


推荐阅读