Rieles> = 3, la aplicación es en sí mismo un módulo (que viven en config/application.rb
). Se pueden almacenar en el módulo de aplicación
module MyApplication
SUPER_SECRET_TOKEN = "123456"
end
A continuación, utilice MyApplication::SUPER_SECRET_TOKEN
hacer referencia a la constante.
Rails> = 2,1 & & < 3 usted debe colocarlos
- en
/config/initializers
cuando la constante tiene el alcance aplicaciones
- cuando la constante se refiere a un modelo/controlador/ayudante específico que puede incluirlo dentro de la clase/módulo en sí
Antes del soporte de Rails 2.1 y initializers
, los programadores se usaban para colocar las constantes de la aplicación en environment.rb.
He aquí algunos ejemplos
# config/initializers/constants.rb
SUPER_SECRET_TOKEN = "123456"
# helpers/application_helper.rb
module ApplicationHelper
THUMBNAIL_SIZE= "100x20"
def thumbnail_tag(source, options = {})
image_tag(source, options.merge(:size => THUMBNAIL_SIZE)
end
end
extraño, pero no funciona. Aunque constants.rb se ejecuta en el inicio, no puedo acceder a SUPER_SECRET_TOKEN en controladores o vistas. –
Ahora eso es gracioso. ¿Quién sabría que la 'mayúscula' de esas constantes se impone en los rieles? –
Nota: no olvide reiniciar su servidor después de hacer una nueva constante. De lo contrario, ¡no se mostrará correctamente! –