【问题标题】:How to set up YAML file for environment-specific configuration settings如何为特定环境的配置设置设置 YAML 文件
【发布时间】:2012-09-17 11:06:12
【问题描述】:

目前,我有一个会话登录方法,它具有特定于环境的配置。

def log_in(user)
  cookies.permanent[:remember_token] = { :value => user.remember_token, :domain => :all }
end

:domain => 与用于生产的:all 和用于开发的'lvh.me' 不同。

如何设置一个 YAML 文件来加载特定环境的配置,如 RailsCast #85 所示?

我尝试了下面的代码,但返回unitialized constant RAILS_ENV

app_config.yml

development:
  domain: lvh.me
test:
  domain: :all
production:
  domain:  :all

load_app_config.rb

APP_CONFIG = YAML.load_file(::Rails.root.join('config','app_config.yml'))[RAILS_ENV]

【问题讨论】:

  • 替换为Rails.env
  • 感谢 apneadiving。看起来它正在加载,但我无法正确加载它。我在开发中需要的确切线路是:domain => 'lvh.me'。我已将其替换为 :domain => APP_CONFIG[:domain],并尝试了 YAML 文件中正在开发的 domain: lvh.medomain: 'lvh.me'domain: lvh.me:3000 的变体,但它们没有为我提供所需的正确跨域会话。你知道在这种情况下正确的措辞是什么吗?

标签: ruby-on-rails configuration yaml


【解决方案1】:

最后,我选择了:

APP_CONFIG = YAML.load_file("#{Rails.root}/config/app_config.yml")[Rails.env].symbolize_keys!

【讨论】:

    【解决方案2】:

    查看confu gem。这与您尝试执行的操作非常相似。

    【讨论】:

      猜你喜欢
      • 2019-10-17
      • 2017-12-08
      • 2023-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-02
      相关资源
      最近更新 更多