1

我注意到

namespace :admin do
  namespace :manage do
    get 'list'
  end
end

实际上成功调用了以下操作(对于/admin/manage/list):

class Admin::ManageController
  def list
    render :text => 'success'
  end
end

这是一种直观的(这就是我尝试它的原因),但它在http://guides.rubyonrails.org/routing.html的任何地方都没有涵盖

有人可以确定它是标准的预期功能,在下一个版本之后不会停止工作吗?

4

1 回答 1

1

这并不出人意料,并且旨在像那样工作。但是,更典型的做法是

namespace :admin do
  resources :manage do
     collection do
       get 'list'
     end
  end
end

namespace和之间的主要区别在于resources后者默认情况下为 CRUD 操作提供标准路由。他们俩都路由到Admin::ManageController

他们也有类似的选择。请参阅文档namespaceresources

如果Manage是可以在您的应用程序中创建和销毁的资源,则使用resources. 如果它只是为某些操作分隔路由的标识符,则使用namespace.

于 2013-10-20T13:10:07.550 回答