使用自定义控制器名称的资源

时间:2012-09-23 16:07:15

标签: ruby-on-rails routes

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

例如,我有一个控制器ProductsControllerImagesController

resources :products do
  resources :images
end

这很好用,但是后来我可能需要使用ImageController以外的产品图片,因此它应该命名为 ProductsImagesController

但是如何在resources()上指定控制器名称而不会回到像丑陋的东西:

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

2 个答案:

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