【发布时间】:2014-07-23 15:51:44
【问题描述】:
假设我有以下场景,我如何将 Rails 4.1 secrets.yml 文件中的配置传递给 mongoid.yml:
config/secrets.yml 文件
default: &mongodb
mongodb_host: <%= ENV['TRG_MONGODB_HOST'] %>
mongodb_host_port: <%= ENV['TRG_MONGODB_HOST_PORT'] %>
mongodb_database: <%= ENV['TRG_MONGODB_DATABASE'] %>
mongodb_db_username: <%= ENV['TRG_MONGODB_DB_USER'] %>
mongodb_db_passowrd: <%= ENV['TRG_MONGODB_DB_PASSWORD'] %>
development:
secret_key_base: xxxxxxxxyyyy
<<: *mongodb
缩短的 config/mongoid.yml 文件
development:
# Configure available database sessions. (required)
sessions:
default:
uri: mongodb://username:password@champ.mongohq.com:17856/ffff
# uri: mongodb://Rails.application.secrets.mongodb_db_username:Rails.application.secrets.mongodb_db_password@Rails.application.secrets.mongodb_host:Rails.application.secrets.mongodb_host_port/Rails.application.secrets.mongodb_database
# uri: mongodb://ENV['mongodb_db_username']:ENV['mongodb_db_password']@ENV['mongodb_host']:ENV['mongodb_host_port']/ENV['mongodb_database']
mongoid.yml 工作的唯一方法是我使用 uri: mongodb://username:password@champ.mongohq.com:17856/ffff 直接添加数据库设置。如果我使用 uri: mongodb//Rails.application.secrets.xx 设置不会被拾取。此外,当我使用 uri: mongodb://ENV['mongodb_db_username'] 时,设置不会被选中。
我也尝试使用像这样的嵌入式 ruby 将环境变量直接传递给 mongoid.yml uri:mongodb:// 但它也没有工作.
关于如何制作 Rails4.1 secrets.yml 文件以将设置传递给 mongoid.yml 文件的任何建议。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 mongoid mongoid4