我申请了YAML.load_file
到我的示例文件:
---
languages:
- name: "English"
iso_639: "en"
native_name: "English"
region:
- ''
- UK
- US
- name: "Klingon"
iso_639: "tlh"
native_name: "tlhIngan Hol"
region:
- notearth
我想迭代这些语言和区域数组。这不起作用:
records.each do |record|
record.region.each do |region|
self.create!
end
end
record.region
给我一个未知的区域方法错误。我如何迭代语言及其区域?或者,如何访问区域数组?
您的代码中有两个错误:
-
加载 YAML 文件后得到的对象不是数组,而是哈希值,假设该文件名为foo.yml
:
YAML.load_file('foo.yml')
# => {"languages"=>[{"name"=>"English", "iso_639"=>"en", ...
因此,您必须像下面这样修改代码才能使其工作:
records['languages'].each do |record|
# ...
region
不是哈希的方法record
,它是一个键,您必须使用以下方式访问相关值record['region']
.
您必须使用的正确代码是:
records['languages'].each do |record|
record['region'].each do |region|
# My guess is you are going to use `region` inside this block
self.create!
end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)