Использование ресурсов с именами пользовательских контроллеров

Я использую вложенные ресурсы, однако я сталкиваюсь с именами контроллеров, которые должны быть более наглядными.

Например, у меня есть контроллер ProductsController и ImagesController

resources :products do
  resources :images
end

Это отлично работает, но позже мне может понадобиться использовать ImageController для изображений, отличных от продуктов, поэтому его следует называть ProductsImagesController.

Но как я могу указать имя контроллера на resources(), не возвращаясь к чему-то уродливому, как:

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

Ответ 1

resources :products do
  resources :images, :controller => "products_images"
end

Ответ 2

Исходя из фона Zend Framework, я думаю, что вы ищете модульную структуру. Rails, похоже, предлагает это, называемое "namespacing":

namespace :admin do
  resources :posts, :comments
end

Это создает маршруты для Admin:: PostsController и Admin:: CommentsController. В вашем случае у вас есть продукты:: ImagesController.

http://guides.rubyonrails.org/routing.html#controller-namespaces-and-routing

Я узнал из этого другого принятого ответа: модули zend, например, в рельсах