2010-03-15 18 views
5

tengo un controlador de administración situado en controllers/admin/admin_controller.rb también tengo un controlador de páginas situada en controllers/admin/pages_controller.rb pages_controller.rb hereda de admin_controller.rb en routes.rb, tengo un espacio de nombres de administración tales como:interfaz de administración en Rails

map.namespace :admin do |admin| 
    admin.resources :pages 
end 
  • Quiero que el administrador tiene la funcionalidad CRUD básica en pages_controller.rb (sé cómo hacerlo)
  • Quiero que el index y show métodos para estar disponibles para los usuarios de aplicaciones para el usuario
  • Me gustaría que las acciones de mostrar y de índices utilicen vistas separadas, pero con el mismo código.

Preguntas:

  • ¿Debería crear un nuevo pages_controller para el front-end, o compartir los métodos y indexshow?
  • Si acción, ¿cómo voy a mostrar puntos de vista distintos en función de si la url es /admin/pages o /pages
  • Si la participación, debería colocar en pages_controller/controllers/admin (donde está ahora) o simplemente en /controllers?

Muchas gracias.

Respuesta

3

Los mantendría separados. Aunque la lógica puede ser la misma ahora, en realidad son dos cosas diferentes. Mantenerlos separados le ayudará con la seguridad y le permitirá realizar cambios más adelante si es necesario, por ejemplo, puede decidir cuándo cargar una página la consulta de administrador también debe incluir algo más, etc. En las rutas puede agregar:

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

Su voluntad a vistas para cada par de acción/controlador, por ejemplo uno en view/admin/pages y uno en/view/pages. Si estos dos son código duplicado, extráigalo en parciales y renderízalos desde ambos.

+0

muchas gracias! –

Cuestiones relacionadas