2015-07-16 5 views
1

Можно ли указать путь для secrets.yml, кроме значения по умолчанию config/secrets.yml, который относится к корневому каталогу Rails?Можно ли указать альтернативное местоположение для secrets.yml?

+0

Какие рельсы версии? – RAJ

+0

@RAJ Я предполагаю, что это должно быть 4,1 или больше? (Вот почему, по-моему, был введен secrets.yml.) – Bribles

ответ

3

Вам необходимо переопределить метод secrets в config/application.rb:

def secrets #:nodoc: 
    @secrets ||= begin 
    secrets = ActiveSupport::OrderedOptions.new 
    yaml = config.paths["PATH_TO_SECRET_YAML_FILE"].first 

    if File.exist?(yaml) 
     require "erb" 
     all_secrets = YAML.load(ERB.new(IO.read(yaml)).result) || {} 
     env_secrets = all_secrets[Rails.env] 
     secrets.merge!(env_secrets.symbolize_keys) if env_secrets 
    end 

    # Fallback to config.secret_key_base if secrets.secret_key_base isn't set 
    secrets.secret_key_base ||= config.secret_key_base 

    secrets 
    end 
end