对于我正在编写的Rails 3应用程序,我正在考虑从本地文件系统的XML,YAML或JSON文件读取一些配置数据。在Rails中存储(结构化)配置数据的位置
关键是:我应该在哪里放这些文件? Rails应用程序中是否有默认位置来存储此类内容?
请注意,我的应用程序部署在Heroku上。
对于我正在编写的Rails 3应用程序,我正在考虑从本地文件系统的XML,YAML或JSON文件读取一些配置数据。在Rails中存储(结构化)配置数据的位置
关键是:我应该在哪里放这些文件? Rails应用程序中是否有默认位置来存储此类内容?
请注意,我的应用程序部署在Heroku上。
我一直做的是:
然后,我创建,我加载YAML的初始化,我象征配置哈希键和分配它像一个常数像APP_CONFIG
您也可以将它包含在模型中,以便您可以在应用程序的任何位置调用Settings.var_name
,并且它将解析文件以获取正确的环境。
随着settingslogic宝石:
class Settings < Settingslogic
source "#{Rails.root}/config/settings.yml"
namespace Rails.env
end
Rails的默认创建一个config
目录,包含了大量的配置信息为您的应用程序,包括数据库和环境的信息。我认为这是合乎逻辑的首要考虑事项。
第二选择将是app
目录,其中包含应用程序的所有模型,视图和控制器,但我认为,目录中包含可执行代码和模板,所以我与config
目录去,亲自。
我会ususaly采用这种方法:
一个配置/ config.yml
development:
another_key: "test"
app_name: "My App"
test:
another_key: "test"
production:
prova: "ciao"
然后在初始化
#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))
没有DB表创建一个ostruct,每个环境设置和你可以以简单的方式回顾信息
AppSetting.another_key
AppSetting.app_name
here a参考
祝你有美好的一天!
此方法的+1。 [这是这种方法的一个例子](https://gist.github.com/a217834493ff7d727ade)以及一些额外的功能;第二种方法很容易采用(每个文件一个环境)。 – 2011-03-02 02:08:50