2010-03-15 2 views
5

ho un controller di amministrazione si trova nella controllers/admin/admin_controller.rb ho anche un controller di pagine si trova nella controllers/admin/pages_controller.rb pages_controller.rb eredita da admin_controller.rb in routes.rb, ho un namespace admin come ad esempio:interfaccia di amministrazione in Rails

map.namespace :admin do |admin| 
    admin.resources :pages 
end 
  • voglio l'amministratore hanno funzionalità CRUD base in pages_controller.rb (so come fare)
  • voglio che il index e show metodi disponibili per gli utenti front-end
  • Desidero che le azioni di visualizzazione e indice utilizzino visualizzazioni separate, ma lo stesso codice.

Domande:

  • Devo creare un nuovo pages_controller per il front-end, o condividere i metodi index e show?
  • Se la quota, come faccio a visualizzare viste separate a seconda che l'url è /admin/pages o /pages
  • Se la quota, dovrei mettere in pages_controller/controllers/admin (dove è ora) o solo in /controllers?

Grazie mille.

risposta

3

Li terrei separati. Anche se la logica forse è la stessa ora sono in effetti due cose diverse. Mantenerli separati ti aiuterà in sicurezza e ti consentirà di apportare modifiche in seguito se necessario, ad esempio potresti decidere quando carichi una pagina anche la query admin: includere qualcos'altro ecc. Nei percorsi puoi aggiungere:

map.resources :pages, :only => [:index, :show] 

Vede una vista per ogni coppia azione/controllore, ad es. uno in vista/admin/pagine e uno nella/vista/pagine. Se questi due stanno duplicando il codice, estrarlo in partial e renderli da entrambi.

+0

grazie mille! –