是否可以指定secrets.yml
以外的路径,而不是相对于Rails根目录的默认config/secrets.yml
?
答案 0 :(得分: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