【问题标题】:Override Rails routing覆盖 Rails 路由
【发布时间】:2014-05-28 18:19:41
【问题描述】:
在我的应用中,我有以下路线:
namespace :partners do
resources :cars
end
我的汽车索引是以下路线:
'localhost:3000/partners/cars/'
但我想要这样的路径:
'localhost:3000/partners/all_cars/'
我该怎么做?
【问题讨论】:
标签:
ruby-on-rails
ruby-on-rails-4
ruby-on-rails-3.2
routes
【解决方案1】:
试试:
namespace :partners do
resources :cars, path: 'all_cars', only: [ :index ]
resources :cars, except: [ :index ]
end
第一行将创建/partners/all_cars/ 映射到index 操作。另请注意,我们只为指定all_cars 路径的index 操作生成路由。
下一行,由于我们已经有了index 的路由,我想我们将跳过定义index,而让其他默认值。
【解决方案2】:
namespace :partners do
resources :cars, except: [:index] do
collection do
get :all_cars
end
end
end
这样您将删除索引并添加 all_cars