Как я могу получить доступ к хешам в массиве хешей? - PullRequest
0 голосов
/ 10 марта 2011

У меня есть массив хэшей под названием entities

Вот посмотрите на массив:

  p "entities"
  y entities
  p "entities[0]"
  y entities[0]
  p "entities[1]"
  y entities[1]
  p "entities[2]"
  y entities[2]

Выход:

"entities"
--- |
 --- 
 - :text: Berlin
   :links: 
   - http://dbpedia.org/resource/Berlin
 - :text: Jan Karski
   :links: 
   - http://dbpedia.org/resource/Jan_Karski
 - :text: God
   :links: 
   - http://dbpedia.org/resource/God
"entities[0]"
--- "-"
"entities[1]"
--- "-"
"entities[2]"
--- "-"

Я не могу понять, как получить доступ к отдельным хэшам. Должно ли что-то происходить, когда я p entities[0]?

Ответы [ 3 ]

3 голосов
/ 10 марта 2011

Это entities.kind_of? String правда? Похоже, сущности на самом деле являются строкой YAML. Следовательно, сущности [0/1/2] являются первыми тремя чертами YAML.

1 голос
/ 10 марта 2011

Ваш entitles может быть не совсем массивом хэшей.Посмотрите это:

irb(main):001:0> e = [{:a=>1,:b=>2},{:c=>3,:d=>4}]
irb(main):002:0> p e
[{:a=>1, :b=>2}, {:c=>3, :d=>4}]

Попробуйте entitles.class и entitles[0].class

1 голос
/ 10 марта 2011

Правильно ли это скопировано?вывод, вставленный в сеанс irb, получается в виде одной строки, а не массива:

ruby-1.9.2-p0 > YAML::parse("--- |
ruby-1.9.2-p0">  --- 
ruby-1.9.2-p0">  - :text: Berlin
ruby-1.9.2-p0">    :links: 
ruby-1.9.2-p0">    - http://dbpedia.org/resource/Berlin
ruby-1.9.2-p0">  - :text: Jan Karski
ruby-1.9.2-p0">    :links: 
ruby-1.9.2-p0">    - http://dbpedia.org/resource/Jan_Karski
ruby-1.9.2-p0">  - :text: God
ruby-1.9.2-p0">    :links: 
ruby-1.9.2-p0">    - http://dbpedia.org/resource/God
ruby-1.9.2-p0"> ").value
 => "--- \n- :text: Berlin\n  :links: \n  - http://dbpedia.org/resource/Berlin\n- :text: Jan Karski\n  :links: \n  - http://dbpedia.org/resource/Jan_Karski\n- :text: God\n  :links: \n  - http://dbpedia.org/resource/God\n" 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...