Estoy construyendo una aplicación de Rails 3 donde los usuarios pueden seleccionar una de varias plantillas y crear un sitio web pequeño. Intento inicializar todas las plantillas disponibles cuando se inicia la aplicación. Eso es esencialmente un archivo que me permite definirlos todos, luego llama a Template.add(template)
para cada uno de ellos, que a su vez los almacena en @@templates
y puedo acceder a ellos a través del Template.find(name)
.Inicializador Reload Rails 3 en modo de desarrollo
El problema es que en el modo de desarrollo, el inicializador que tengo realizando las llamadas a Template.add
se cargan en la primera solicitud y luego se borran en reload!
. He leído sobre config.to_prepare
, pero no está funcionando para mí, probablemente porque estoy requiriendo las plantillas de este tipo:
# template config at app/templates/template_name/template_name.rb
path = File.expand_path(Rails.root + 'app/templates')
Dir[File.join(path, '/*')].each do |template|
name = File.basename(template)
require File.join(path, name, "#{name}.rb")
end
¿Qué puedo hacer para recargar o bien estos archivos después de reload!
o evitar que se destrozado en absoluto? Además, si tienes una recomendación para una mejor manera de manejar esto, soy todo oídos. Todavía estoy obteniendo mi equilibrio con Rails, especialmente en lo que respecta a la configuración.
Estoy evitando temporalmente este problema al cargar los datos en la clase. Sálvame de esta fea y no modular maldad.
No estoy seguro de que recibí su pregunta. Entonces solo una sugerencia: ¿por qué no cargan automáticamente sus archivos? http: // hemju.com/2010/09/22/rails-3-quicktip-autoload-lib-directory-including-all-subdirectories/ – apneadiving
La falta de familiaridad con el proceso, en realidad, pero de todos modos no resuelve mi problema. El modelo de Plantilla se vuelve a cargar en cada solicitud (cache_classes = false en desarrollo) y mis archivos de plantilla no se volverán a cargar, por lo que en la segunda solicitud no hay ninguna plantilla "registrada" con el modelo de Plantilla. – coreyward
¿Puedes explicar un poco más acerca de por qué crees que esto no funciona con to_prepare? – johnmcaliley