Question

J'ai 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 en routes.rb, j'ai un espace de noms d'administration en tant que tel:

map.namespace :admin do |admin|
   admin.resources :pages
end
  • Je veux l'administrateur ont des fonctionnalités de base CRUD dans pages_controller.rb (je sais comment faire)
  • Je veux que les méthodes de index et show soient disponibles aux utilisateurs front-end
  • Je voudrais que les actions montrent et l'index pour utiliser 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 la 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.

Était-ce utile?

La solution

Je garderais les séparer. Bien que la logique peut-être même qu'ils sont maintenant en vigueur deux choses différentes. les garder séparés vous aidera à la sécurité et vous permettre de faire des changements plus tard si nécessaire, par exemple, vous pouvez décider lors du chargement d'une page la requête d'administration devrait également: inclure quelque chose d'autre, etc. Dans les itinéraires que vous pouvez ajouter:

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

Votre volonté a des vues pour chaque action / paire de contrôleurs, par exemple une vue en / admin / pages et un dans le répertoire / vue / pages. Si ces deux dupliquez code, en extraire et de les rendre partials à la fois.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top