yml rails application ruby-on-rails yaml env

ruby on rails - rails - Rieles 3, ¿cómo usar una configuración ENV vars en un archivo Settings.yml?



rails environment variables (3)

La solución anterior no funcionó para mí. Sin embargo, encontré la solución sobre ¿Cómo utilizo las variables en un archivo YAML?

Mi archivo .yml contenía algo como:

development: gmail_username: <%= ENV["GMAIL_USERNAME"] %> gmail_password: <%= ENV["GMAIL_PASSWORD"] %>

La solución se ve así:

template = ERB.new File.new("path/to/config.yml.erb").read processed = YAML.load template.result(binding)

Entonces, cuando introduce una etiqueta scriptlet en el archivo .yml, es más una plantilla erb. Entonces léelo como una plantilla erb primero y luego carga el yml como se muestra arriba.

En mi archivo settings.yml tengo varios valores de configuración, algunos de los cuales hacen referencia a variables ENV [].

por ejemplo, tengo ENV [''FOOVAR''] es igual a WIDGET

Pensé que podría hacer referencia a ENV vars dentro de <%%> de esta manera:

Settings.yml:

default: cv1: Foo cv2: <% ENV[''FOOVAR''] %>

en la consola de rieles si escribo

> ENV[''FOOVAR''] => WIDGET

pero

> Settings.cv1 => Foo (works okay) > Settings.cv2 =>nil (doesn''t work???)


Utilice <%= ENV[''FOOVAR''] %> lugar de <% ENV[''FOOVAR''] %> .

Tenga en cuenta que este enfoque solo funcionará si lo que está analizando el archivo Yaml está configurado para procesarlo a través de Erb (por ejemplo, puede ver cómo Mongoid hace exactamente esto ). Sin embargo, no es universalmente compatible con los archivos de Yaml, por lo que depende de para qué estés usando este archivo de Yaml.


use lo siguiente: -

default: cv1: Foo cv2: <%= ENV[''FOOVAR''] %>