1

In config/data.yml, ich habe:Rails 4 - Wie kann ich eine Konstante in der Datei /config/environments/production.rb verwenden?

development: 
    something: some_value 
production: 
    something: different_value 

in config/initializers/constants.rb ich es laden:

CONST_DATA = YAML.load_file("#{::Rails.root}/config/data.yml")[::Rails.env] 

und dann möchte ich diese CONST_DATA in der /config/environments/production.rb Datei verwenden, aber wenn ich das tue, erhalte ich ein Fehler zu sagen

ERROR -- : uninitialized constant CONST_DATA (NameError) 

Wie in dendiese konstante zugänglich zu machen 210 Datei?

Danke

+0

Die initializers nur ausgeführt werden, nachdem die Umgebung eingerichtet ist. Aber natürlich können Sie Ihre Konstante explizit am Anfang von 'production.rb' laden, indem Sie z. 'require 'config/initializers/constants''. – Raffael

+0

Auch die Zeile mit 'load_file' direkt in Ihrer production.rb oder application.rb wäre in Ordnung, denke ich. – Raffael

Antwort

0

Seit der release of Rails 4.1 gibt es eine Datei config/secrets.yml genannt. Diese Daten sind während der Initialisierung geladen und verfügbar. Anschließend können Sie Schlüssel in es wie folgt zugreifen:

Rails.application.secrets.key_name