在写一个rails 4应用程序的原因我最近一直想知道在哪里以及如何存储自定义配置信息?具体来说,我的意思是像应用标题,特殊电子邮件地址,或许主题选项等,我想在整个我的应用程序中使用环境变量或其他结构引用等。我一直在周围挖一点, - 部署前 - 最后用一记漂亮的初始化建立这样如何正确存储和访问全局应用配置设置?
require 'ostruct'
all_config = YAML.load_file("#{Rails.root}/config/app_config.yml") || {}
env_config = all_config[Rails.env] || {}
AppConfig = OpenStruct.new(env_config)
其内容如下YAML文件(app_config.yml)的OpenStruct
default: &default
general:
app_title: MyName
maintainer_email_address: [email protected]
development:
<<: *default
test:
<<: *default
production:
<<: *default
在开发过程中,我非常高兴通过AppConfig.general.*
访问我必须访问的所有内容,但不幸的是,这并不适用于生产环境,尝试启动服务器/控制台最终导致了Uninitialized constant AppConfig
-错误。
现在我有两个到三个问题:
1)可我认为这并不在生产,由于文件,其中production.rb
近前加载初始化(的加载顺序工作 - >的AppConfig作为全局变量不存在)
2)如果是:为什么这个工作在开发中?那里有什么不同?
3)存储上述信息的最佳做法是什么?我的愿望是能够通过某种用户/管理界面舒适地获取和设置这些信息。从那里我不想惹我的环境 - 文件太难...
好吧,我希望有人能帮助我,在此先感谢! Andi
http://stackoverflow.com/questions/2127960/ruby-on-rails-storing-application-configuration/40306232#40306232 – prograils
感谢您的提示。不幸的是,它不回答问题1和2.你有任何线索吗? –