2010-05-17 11 views

Respuesta

2

No hay una forma pública estándar hasta donde yo sé. Se podría utilizar una llamada rudimentaria así:

layouts = Dir['app/views/layouts/*'].map {|f| 
    File.basename(f, '.html.erb') # returns 'layout' for 'layout.html.erb' 
} 
+0

¿Por qué este downvoted? Aunque claramente no es perfecto, de hecho es una respuesta válida – OneChillDude

+0

Sí, esto funcionó mejor para mí que el template_exists? abajo. –

0

creo que la mejor forma sería la de almacenar estos valores en una base de datos, deje que un usuario elija de eso.

En lugar de intentar verificar a través de lo que se ha sugerido en la publicación anterior.

Utilice un modelo de diseño y deje que el usuario elija.

23

Puede usar template_exists? que es un alias para exists?

Por ejemplo: template_exists?("layout_name", "layouts")

+0

Tu comentario definitivamente me señaló (quién tiene la misma pregunta que el OP) en la dirección correcta. existe? (y template_exists?) son métodos en ActionView :: LookupContext (https://github.com/rails/rails/blob/master/actionpack/lib/action_view/lookup_context.rb). Quiero usarlos desde mi ApplicationController. ¿Es eso demasiado temprano? ¿El LookupContext actual ya está configurado? ¿Cómo puedo acceder desde mi ApplicationController? –

+3

Debería hacer una búsqueda antes de publicar preguntas. LookupContext se inicializa en AbstractController :: ViewPaths y se puede acceder de forma sencilla como lookup_context en su controlador. –

Cuestiones relacionadas