Ruby Array:TypeError(没有将符号隐式转换为整数)



我有一个数组:

row = [:text_field,
[{:text=>
"I<NLDSPECI20142999999990<<<<<86503101F2403096NLD<<<<<<<<<<<8DE<BRUIJN<<WILLEKE<LISELOTTE<<",
:value=>"999999990",
:@derived=>"false",
:@id=>"_7a88b4df-8730-46d9-9a13-6494940fcfce-fg-1-fd-1",
:@name=>"CitizenServiceNumber",
:@score=>"1"},
{:text=>
"I<NLDSPECI20142999999990<<<<<86503101F2403096NLD<<<<<<<<<<<8DE<BRUIJN<<WILLEKE<LISELOTTE<<",
:value=>"NLD",
:@derived=>"false",
:@id=>"_7a88b4df-8730-46d9-9a13-6494940fcfce-fg-1-fd-2",
:@name=>"CountryCode",
:@score=>"1"}]]

当我打电话时:

row.each {|row_info| row_info[:@name]}

我收到一个错误,说:

TypeError (no implicit conversion of Symbol into Integer)

我在这里做错了什么?

您要迭代的集合是row[1]而不是row

row[1].map { |ri| ri[:@name] }
#=> ["CitizenServiceNumber", "CountryCode", "DocumentNumber", "DocumentType", "Gender", "GivenNames", "Initials", "Nationality", "Prefixes", "Surname"]

:text_fieldSymbol类的一个实例。它不响应[]方法。

以下内容不会引发任何异常,但它不会执行任何操作:

row.last.each {|row_info| row_info[:@name]}

最新更新