【发布时间】:2025-12-21 10:35:12
【问题描述】:
我想知道如何解析包含以下内容的 YAML 文件:
---
javascripts:
- fo_global:
- lazyload-min
- holla-min
目前我正在尝试以这种方式解析它:
@custom_asset_packages_yml = (File.exists?("#{RAILS_ROOT}/config/asset_packages.yml") ? YAML.load_file("#{RAILS_ROOT}/config/asset_packages.yml") : nil)
if !@custom_asset_packages_yml.nil?
@custom_asset_packages_yml['javascripts'].each{ |js|
js['fo_global'].each{ |script|
script
}
}
end
但它似乎不起作用,并给我一个错误,即值为 nil。
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.each
如果我尝试这个,它会输出整个字符串 (fo_globallazyload-minholla-min):
if !@custom_asset_packages_yml.nil?
@custom_asset_packages_yml['javascripts'].each{ |js|
js['fo_global']
}
end
【问题讨论】:
-
能否给出运行时脚本的输出?文件在正确的位置?你总是可以启动一个 Rails 控制台,看看 ruby 是否也能看到那条路径。
-
是的,该文件确实存在并且位于正确的位置。我已经用错误更新了我的帖子。