我正在使用嵌套资源,但是我遇到的控制器名称应该更具描述性。
例如,我有一个控制器ProductsController
和ImagesController
resources :products do
resources :images
end
这很好用,但是后来我可能需要使用ImageController
以外的产品图片,因此它应该命名为 ProductsImagesController 。
但是如何在resources()
上指定控制器名称而不会回到像丑陋的东西:
match 'products/images' => 'products_images#index'
match 'products/images/new' => 'products_images#new'
答案 0 :(得分:24)
resources :products do
resources :images, :controller => "products_images"
end
答案 1 :(得分:0)
来自Zend Framework背景,我认为您正在寻找模块化结构。 Rails似乎提供了这个,称为“命名空间”:
namespace :admin do
resources :posts, :comments
end
创建到Admin :: PostsController和Admin :: CommentsController的路由。在您的情况下,您将拥有Products :: ImagesController。
http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing
我从其他接受的答案中发现:zend modules like in rails