Ruby on rails 3 YAML.load永远不会在Rails初始值设定项中返回
我试图在Rails 3.1应用程序初始化期间加载yaml配置文件,对yaml.load的调用永远不会返回。这是我的初始值设定项文件:Ruby on rails 3 YAML.load永远不会在Rails初始值设定项中返回,ruby-on-rails-3,yaml,initializer,syck,psych,Ruby On Rails 3,Yaml,Initializer,Syck,Psych,我试图在Rails 3.1应用程序初始化期间加载yaml配置文件,对yaml.load的调用永远不会返回。这是我的初始值设定项文件: STRIPE_CONFIG = begin config = YAML.load(Rails.root.join('config', 'stripe.yml')) || {} config = config[Rails.env] || {} config.to_options end 这是我的stripe.yml文件: default: &d
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
我也尝试过显式地使用Psych而不是Syck,但运气不好。(它最后也挂了起来。)
呃,显然我只需要显式地读取文件。我改变了这一点:
YAML.load(Rails.root.join('config', 'stripe.yml'))
为此:
YAML.load(File.open(Rails.root.join('config', 'stripe.yml')))
答案会有点晚,但我刚才偶然发现了类似的问题;) 您可以使用
YAML::load_file
,它需要文件名作为参数
YAML.load(Rails.root.join('config', 'stripe.yml'))
YAML.load(File.open(Rails.root.join('config', 'stripe.yml')))