gpt4 book ai didi

ruby-on-rails-3 - YAML.load 永远不会在 Rails 初始值设定项中返回

转载 作者:行者123 更新时间:2023-12-04 07:20:44 25 4
gpt4 key购买 nike

我试图在我的 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: &default
api_key: test
public_key: test

development:
<<: *default

test:
<<: *default

production:
api_key: prod
public_key: prod

无论出于何种原因,YAML.load 调用都不会返回。如果我执行堆栈跟踪,它似乎卡在 syck.rb 的第 135 行。有趣的是,我让我的应用程序在中断前停留的时间越长,对第 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

最佳答案

答案会有点晚,但我刚才偶然发现了类似的问题;)

您可以使用 YAML::load_file,它需要文件名作为参数。

关于ruby-on-rails-3 - YAML.load 永远不会在 Rails 初始值设定项中返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9362935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com