usando un método: layout_for_namespace Establecí el diseño de mi aplicación dependiendo de si estoy en frontend o back-end, ya que el backend usa un espacio de nombres "admin".Rails 3: ¿Obtener el espacio de nombres actual?
No pude encontrar una forma bonita de averiguar qué espacio de nombres soy, la única forma que encontré es mediante el análisis de la cadena de parámetros [: controlador]. Por supuesto que es fácil, parece ser a prueba de fallos y funciona bien. Pero me pregunto si hay una forma mejor y preparada para hacer esto. ¿Alguien sabe?
Actualmente sólo estoy usando el siguiente método:
def is_backend_namespace?
params[:controller].index("admin/") == 0
end
Gracias de antemano
Arne
Hola. Eso no es lo que quise decir, lo siento. El nombre del controlador es otra cosa, "admin" es el espacio de nombres. Es Admin :: MyController, por lo que params [: controller] da "admin/my_controller" o algo así, ahí es donde comprobo si es el espacio de nombres de administración. Usar controller_name debería hacer exactamente lo mismo, pero me gustaría saber cómo no _parse_ it pero recuperar el espacio de nombres solamente. – arnekolja
Mi error, no leí la pregunta de cerca. Usted indica claramente el espacio de nombre y no el nombre del controlador. Respuesta actualizada con una alternativa. – johnmcaliley
Más simplemente 'controller.class.name.start_with? ('Admin')'. –