20

我正在使用嵌套资源,但是我遇到了应该更具描述性的控制器名称。

例如我有一个控制器ProductsControllerImagesController

resources :products do
  resources :images
end

这工作正常,但后来我可能需要使用ImageController产品图像以外的图像,因此它应该命名为ProductsImagesController

但是我怎样才能指定控制器名称resources()而不回退到像这样丑陋的东西:

match 'products/images' => 'products_images#index'
match 'products/images/new' => 'products_images#new'
4

2 回答 2

33
resources :products do
  resources :images, :controller => "products_images"
end
于 2012-09-23T16:21:33.943 回答
2

来自 Zend 框架背景,我认为您正在寻找模块化结构。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

于 2012-09-25T02:33:59.003 回答