Я собираюсь опубликовать проект Rails на GitHub, который требует переименования и настройки нескольких файлов YML или установки переменных окружения. В приложении есть несколько пользовательских инициализаторов, и мне интересно, как лучше всего обеспечить наличие вышеуказанного? В настоящее время я использую следующий фрагмент код в одном из моих инициализаторов:Rails Initializer Halting
# 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
Это стандартная практика throw
из инициализаторов или же Rails поддерживает лучший способ сделать это? Благодаря!
'Rails.logger.fatal', похоже, ничего не делает в инициализаторе. Нужно ли мне настраивать что-нибудь особенное, чтобы использовать это? –
Не уверен. Записывает ли он что-либо в файл 'log/# {env} .log'? – yfeldblum
Я просто понял, что он записывает журналы, но не останавливает запуск сервера (или печатает на выходе при запуске 'rails s'). –