Rails3路由:具有命名空间的资源

Mat*_*ias 1 routing ruby-on-rails ruby-on-rails-3

在定义路由时是否可以定义命名空间参数,如下所示:

resource :account, :namespace => :account do
    resources :comments
end
Run Code Online (Sandbox Code Playgroud)

所以/account/comment打电话Account::CommentsController而不是公正CommentsController.就像一个注释, :namespace上面的选项似乎不起作用.

我当然可以添加:controller => 'account/comments'到评论资源,但是有很多嵌套资源,这不是很干.

还有更好的方法吗?

谢谢你们 - 你摇滚!

Mat*_*ias 5

好吧,经过一些挖掘后,我似乎找到了一个解决方案:

resource :account, :controller => 'account' do
    scope :module => 'account' do
        resources :comments
        ...
    end
end
Run Code Online (Sandbox Code Playgroud)

这导致:

/account/comments链接到Account::CommentsController仍然能够使用常规CRUD方法/account