У меня есть массив хэшей под названием entities
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]?
p entities[0]
Это entities.kind_of? String правда? Похоже, сущности на самом деле являются строкой YAML. Следовательно, сущности [0/1/2] являются первыми тремя чертами YAML.
entities.kind_of? String
Ваш entitles может быть не совсем массивом хэшей.Посмотрите это:
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
entitles.class
entitles[0].class
Правильно ли это скопировано?вывод, вставленный в сеанс 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"