2012-09-23 5 views
10

Uso risorse nidificate, tuttavia trovo nomi di controller che dovrebbero essere più descrittivi.Utilizzo di risorse con nomi di controller personalizzati

Per esempio ho un controller ProductsController e ImagesController

resources :products do 
    resources :images 
end 

Questo funziona bene, ma in seguito potrei aver bisogno di usare il ImageController per diversi dai prodotti immagini, pertanto, dovrebbe essere nominato ProductsImagesController.

Ma come posso specificare il nome del controller su resources() senza ricadere a qualcosa di brutto come:

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

risposta

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

Sto avendo un problema con questo a rotaie 4? risorse: analisi, regolatore: => '/ admin/portal/API/analytics' fare raccolta fare get: products_by_user_id get: products_by_stylist fine fine – James

0

Provenendo da un background di Zend Framework, penso che tu sia alla ricerca di una struttura modulare. Rails sembra offrire questo, chiamato 'namespacing':

namespace :admin do 
    resources :posts, :comments 
end 

che crea rotte da Admin :: PostsController e Admin :: CommentsController. Nel tuo caso, avresti Prodotti :: ImagesController.

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

ho scoperto da quest'altra risposta accettata: zend modules like in rails