2010-03-15 5 views
5

Je dispose d'un contrôleur d'administration situé dans controllers/admin/admin_controller.rb J'ai aussi un contrôleur de pages situé dans controllers/admin/pages_controller.rb pages_controller.rb hérite de admin_controller.rb dans routes.rb, j'ai un espace de noms d'administration en tant que tel:interface Admin dans Rails

map.namespace :admin do |admin| 
    admin.resources :pages 
end 
  • Je veux l'administrateur ont des fonctionnalités CRUD de base dans pages_controller.rb (je sais comment faire)
  • Je veux que le index et show méthodes à mettre à la disposition des utilisateurs frontaux
  • Je voudrais que les actions show et index utilisent des vues séparées, mais le même code.

Questions:

  • Dois-je créer une nouvelle pages_controller pour le front-end, ou partager les méthodes index et show?
  • Si part, comment pourrais-je afficher des vues différentes selon que l'URL est /admin/pages ou /pages
  • Si l'action, dois-je placer pages_controller dans /controllers/admin (où il est maintenant) ou juste à /controllers?

Merci beaucoup.

Répondre

3

Je les garderais séparés. Bien que la logique peut-être la même chose maintenant, ils sont en effet deux choses différentes. Si vous les séparez, cela vous aidera à effectuer des modifications plus tard si nécessaire. Par exemple, vous pouvez décider lors du chargement d'une page que la requête d'administration doit également inclure autre chose:

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

Votre volonté une vues pour chaque paire action/contrôleur, par exemple un dans la vue/admin/pages et un dans le/view/pages. Si ces deux codes dupliquent, extrayez-le en partiels et restituez-les des deux.

+0

merci beaucoup! –

Questions connexes