Ruby Array: TypeError (без неявного преобразования Symbol в целое число) - PullRequest
0 голосов
/ 11 июня 2018

У меня есть массив:

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)

Что я сделалздесь не так?

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Коллекция, которую вы хотите повторить, находится в row[1], а не row

row[1].map { |ri| ri[:@name] }
#=> ["CitizenServiceNumber", "CountryCode", "DocumentNumber", "DocumentType", "Gender", "GivenNames", "Initials", "Nationality", "Prefixes", "Surname"]
0 голосов
/ 11 июня 2018

:text_field является экземпляром класса Symbol.Он не отвечает на метод [].

Следующее не вызовет никаких исключений, хотя ничего не будет делать:

row.last.each {|row_info| row_info[:@name]}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...