2010-02-27 9 views
5

Está en mi entendimiento de que puedo especificar un diseño para un controlador poniendoEspecificar diseños para ciertos controladores en Ruby on Rails

layout 'mylayout' 

en el archivo de controlador. Además, entiendo que puedo especificar ciertas acciones para las que se invocará el diseño con :only y :except como tales: diseño 'mylayout',: only => [: index,: new] o diseño 'mylayout',: excepto => [: índice,: nuevo]

Lo que me pregunto es, ¿puedo poner layout 'mylayout' en mi controlador de aplicación y especificar que pudiera ser emitida sólo para ciertos controladores con algo como :only_controller y :except_controller, o tengo que especificar layout 'mylayout' en cada controlador en el que quiero que se muestre?

La razón de esto es que tengo algunos controladores que están a cargo de la sección de administración de mi sitio, y me gustaría tener un diseño diferente para ellos.

Respuesta

2

Haga que los controladores admin hereden de AdminController y cree un diseño admin.html.erb. De esa forma, todos los controladores de su sección de administración tendrán este diseño.

+0

Pero no necesito un controlador físico de administración real, no existe. Si lo creo, ¿tendrá que tener un back-end de base de datos? –

+0

No hay forma de que los controladores estén asociados con la base de datos :) piénselo como una clase base abstracta para los controladores de administración. Incluso aclarará las cosas, porque cuando veas un controlador que hereda de 'AdminController' sabrás de inmediato que es un controlador de la sección de administración. Además, es posible que necesites algunos filtros 'before_filter' comunes, y una clase base sería un lugar perfecto para ellos. –

+0

muchas gracias! –