2012-09-23 12 views
10

Ich verwende verschachtelte Ressourcen, aber ich stoße auf Controller-Namen, die aussagekräftiger sein sollten.Verwenden von Ressourcen mit benutzerdefinierten Controller-Namen

Zum Beispiel habe ich einen Controller ProductsController und ImagesController

resources :products do 
    resources :images 
end 

Dies funktioniert gut, aber später könnte ich die ImageController für andere als Produkte Bilder verwenden müssen, daher sollte es ProductsImagesController benannt werden.

Aber wie ich den Namen des Controllers auf resources(), ohne zu fallen zurück zu etwas hässlich wie angeben:

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

Antwort

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

ich mit diesem 4 in Schienen ein Problem habe? Ressourcen: Analytik,: controller => '/ admin/portal/api/Analytik' do Sammlung tun get: products_by_user_id get: products_by_stylist Ende Ende – James

0

Ich stamme aus einer Zend Framework Hintergrund, ich glaube, Sie für eine modulare Struktur suchen. Rails scheint diese, die so genannte 'Namespacing' zu bieten:

namespace :admin do 
    resources :posts, :comments 
end 

Das Routen Admin :: Posts und Admin :: CommentsController erstellt. In Ihrem Fall hätten Sie Products :: ImagesController.

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

fand ich von dieser anderen akzeptierten Antwort aus: zend modules like in rails

Verwandte Themen