Ruby on rails Rails初始化器停止
我正要在GitHub上发布一个Rails项目,它需要用户重命名和配置一些YML文件或设置环境变量。这个应用程序有几个自定义的初始值设定项,我想知道强制执行上述内容的最佳方法是什么?目前,我正在我的一个初始值设定项中使用以下代码段:Ruby on rails Rails初始化器停止,ruby-on-rails,Ruby On Rails,我正要在GitHub上发布一个Rails项目,它需要用户重命名和配置一些YML文件或设置环境变量。这个应用程序有几个自定义的初始值设定项,我想知道强制执行上述内容的最佳方法是什么?目前,我正在我的一个初始值设定项中使用以下代码段: # config/initializers/omniauth.rb config = YAML::load(File.read("#{Rails.root}/config/omniauh.yml"))[Rails.env] rescue {} config['twi
# config/initializers/omniauth.rb
config = YAML::load(File.read("#{Rails.root}/config/omniauh.yml"))[Rails.env] rescue {}
config['twitter' ] ||= {}
config['facebook'] ||= {}
twitter_key = config['twitter' ]['key'] || ENV['OMNIAUTH_TWITTER_KEY' ]
twitter_secret = config['twitter' ]['secret'] || ENV['OMNIAUTH_TWITTER_SECRET' ]
facebook_key = config['facebook']['key'] || ENV['OMNIAUTH_FACEBOOK_KEY' ]
facebook_secret = config['facebook']['secret'] || ENV['OMNIAUTH_FACEBOOK_SECRET']
[twitter_key, twitter_secret, facebook_key, facebook_secret].each do |parameter|
throw "Rename and configure 'omniauth.yml.sample'." if parameter.nil? or parameter.empty?
end
Rails.application.config.middleware.use OmniAuth::Builder do
provider :twitter , twitter_key , twitter_secret
provider :facebook, facebook_key, facebook_secret
end
从初始值设定项抛出
是标准做法还是Rails支持更好的方法?谢谢 这对我来说似乎是完全可以接受的,我也会这样做(除非我用raise
而不是throw
;p)这很好。但是,您可能还需要添加对Rails.logger.fatal
Rails.logger.fatal的调用,该调用在初始值设定项中似乎没有任何作用。我需要配置什么特殊的东西来使用它吗?不确定。它是否将任何内容记录到log/#{env}.log
文件中?我刚刚意识到它正在写入日志,但没有停止服务器的启动(或者在运行rails s
时打印到输出)。