Rails 3路由嵌套控制器和子文件夹

时间:2012-08-07 15:26:31

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2

我需要一些嵌套控制器路由的帮助。我自己无法从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,它们有不同的用途。
谢谢

1 个答案:

答案 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

这符合您的需求吗?