Ответ 1
resources :products do
resources :images, :controller => "products_images"
end
Я использую вложенные ресурсы, однако я сталкиваюсь с именами контроллеров, которые должны быть более наглядными.
Например, у меня есть контроллер ProductsController
и ImagesController
resources :products do
resources :images
end
Это отлично работает, но позже мне может понадобиться использовать ImageController
для изображений, отличных от продуктов, поэтому его следует называть ProductsImagesController.
Но как я могу указать имя контроллера на resources()
, не возвращаясь к чему-то уродливому, как:
match 'products/images' => 'products_images#index'
match 'products/images/new' => 'products_images#new'
resources :products do
resources :images, :controller => "products_images"
end
Исходя из фона 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, например, в рельсах