2011-11-10 13 views
12

Tengo una serie de controladores y vistas asociadas dentro de mi aplicación que existen dentro del espacio de nombres Admin. Quiero que estas vistas utilicen un diseño diferente al del espacio de nombres principal para que pueda darles una apariencia diferente al sitio normal. ¿Hay alguna forma de que pueda hacer esto usando la funcionalidad incorporada de Rails? Sé que si tengo una clase PostController y creo una vista posts.html.erb en el directorio de diseños, esto se usará como el diseño para cualquiera de las vistas del controlador, ¿hay algo similar que pueda hacer para los controladores con espacios de nombres?Proporcionar un diseño predeterminado para vistas dentro de un espacio de nombres

+0

esto es casi un duplicado, y definitivamente relacionadas con: http://stackoverflow.com/questions/4221856/rails-3- layout-for-namespaced-routes – OnePablo

Respuesta

25

Crear clase AdminController personalizada para los controladores de su administración que va a heredar de. Este AdminController hereda de ApplicationController y anula el diseño.

class AdminController < ApplicationController 
    layout "admin" 
end 

class Admin::PostController < AdminController 
end 
0

Puede anular diseño predeterminado para cualquier controlador con layout método

5

No hay necesidad de layout método. Debe poner sus archivos de diseño para el espacio de nombres en views/layouts/<namespace>.

Ejemplo espacio de nombres con el nombre de foo ':

controlador: app/controllers/foo/bar_controller.rb

Disposición para este controlador: app/views/layouts/foo/bar.html.erb

+3

Esto significa que debe crear un diseño para cada vista de espacio de nombres – chrisan

Cuestiones relacionadas