我需要一些嵌套控制器路由的帮助。我自己无法从Rails指南文档中找出答案 我在rails 3.2 app中有以下控制器:
/app/controllers/organizations_controller.rb (class OrganizationsController)
/app/controllers/organization/events_controller.rb (class Organization::EventsController)
然后,在routes.rb
中resources :organizations, path: 'org' do
resources :events
member do
get 'confirm'
end
end
end
正在运行rake routes
显示(仅针对我的问题的相关部分):
organization_event GET /org/:organization_id/events/:id(.:format) events#show
网址没问题,路由名称也没问题,但是到“控制器/操作”的映射是不对的。不像我想要的那样。它应该是organization/events#show
。
我错过了什么?如何将此路径指向正确的控制器。我选择将events_controller
放在organization
文件夹中,因为我已经在控制器文件夹的根目录中放置了另一个events_controller
,它们有不同的用途。
谢谢
答案 0 :(得分:6)
namespace :organization do
resources :events
member do
get "confirm"
end
end
end
更多信息here。
修改的
抱歉,你没弄错了。
resources :organizations, path: 'org' do
resources :events, :module => "organization"
member do
get 'confirm'
end
end
end
这符合您的需求吗?