Я пытаюсь загрузить файл конфигурации yaml во время инициализации моего приложения Rails 3.1, и вызов YAML.load никогда не возвращается. Вот мой инициализатор файл:YAML.load никогда не возвращается в Rails initializer
STRIPE_CONFIG = begin
config = YAML.load(Rails.root.join('config', 'stripe.yml')) || {}
config = config[Rails.env] || {}
config.to_options
end
А вот мой stripe.yml файл:
default: &default
api_key: test
public_key: test
development:
<<: *default
test:
<<: *default
production:
api_key: prod
public_key: prod
По какой-то причине, YAML.load
вызов никогда не возвращается. Если я выполняю трассировку стека, она, похоже, застряла на линии 135 syck.rb. Интересно, чем дольше я позволяю своему приложению сидеть до взлома, тем больше вызовов на строку 135 появляется.
/Users/mhuggins/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/syck.rb:135:in `read'
/Users/mhuggins/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/syck.rb:135:in `read'
/Users/mhuggins/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/syck.rb:135:in `load'
/Users/mhuggins/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/syck.rb:135:in `load'
/Users/mhuggins/Sites/dating/config/initializers/stripe.rb:2:in `<top (required)>'
...
Я попытался явно использовать Psych, а не использовать Syck, но не повезло. (В конце концов он также висит.)
STRIPE_CONFIG = begin
require 'psych'
config = Psych.load(Rails.root.join('config', 'stripe.yml')) || {}
config = config[Rails.env] || {}
config.to_options
end
Эта бывшая линия работает для меня, не уверен, почему не для вас –