为我的Rails应用程序创建自定义配置选项的最佳方法?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

我需要为我的Rails应用程序创建一个配置选项。我发现,如果我设置了environment.rb,它可以在我的视图中使用,这正是我想要的。

environment.rb

AUDIOCAST_URI_FORMAT = http://blablalba/blabbitybla/yadda

但是这是最好的方案吗?

提问于
用户回答回答于

对于不需要存储在数据库表中的常规应用程序配置,我喜欢config.yml,像这样:

defaults: &defaults
  audiocast_uri_format: http://blablalba/blabbitybla/yadda

development:
  <<: *defaults

test:
  <<: *defaults

production:
  <<: *defaults

该配置文件从config / initializers中的自定义初始化程序中加载:

# Rails 2
APP_CONFIG = YAML.load_file("#{RAILS_ROOT}/config/config.yml")[RAILS_ENV]

# Rails 3+
APP_CONFIG = YAML.load_file(Rails.root.join('config/config.yml'))[Rails.env]

如果使用的是Rails 3,请确保不会无意中将一个前导斜杠添加到相关配置路径中。

然后可以使用以下方式检索该值:

uri_format = APP_CONFIG['audiocast_uri_format']

用户回答回答于

Rails 3版本的初始化代码如下:

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

此外,Ruby1.9.3换一下做法:

defaults: &DEFAULTS
  audiocast_uri_format: http://blablalba/blabbitybla/yadda

development:
  <<: *DEFAULTS

test:
  <<: *DEFAULTS

production:
  <<: *DEFAULTS

扫码关注云+社区