在Rails中存储(结构化)配置数据的位置

aba*_*gat 5 ruby configuration ruby-on-rails heroku ruby-on-rails-3

对于我正在编写的Rails 3应用程序,我正在考虑从本地文件系统上的XML,YAML或JSON文件中读取一些配置数据.

关键是:我应该把这些文件放在哪里?Rails应用程序中是否存在存储此类内容的默认位置?

作为旁注,我的应用程序部署在Heroku上.

Fer*_*ido 8

我一直在做的是:

  • 如果文件是常规配置文件:我在目录/ config中创建一个YAML文件,每个环境有一个上层类密钥
  • 如果我有一个文件用于每个环境(大项目):我为每个环境创建一个YAML并将它们存储在/ config/environments /

然后我创建一个初始化器,我加载YAML,我象征着配置哈希的键,并将它分配给像APP_CONFIG这样的常量


and*_*rea 5

我通常会采用这种方法:

一个 config/config.yml

development:
  another_key: "test"
  app_name: "My App"
test:
  another_key: "test"
production:
  prova: "ciao"
Run Code Online (Sandbox Code Playgroud)

然后在初始化程序中创建一个 ostruct

#config/initializer/load_config.rb
require 'ostruct'
config = OpenStruct.new(YAML.load_file("#{RAILS_ROOT}/config/config.yml"))
::AppSetting = OpenStruct.new(config.send(RAILS_ENV))
Run Code Online (Sandbox Code Playgroud)

没有数据库表,每个环境设置,您可以以简单的方式检索信息

AppSetting.another_key
AppSetting.app_name
Run Code Online (Sandbox Code Playgroud)

这里有一个参考
有美好的一天!