Нежелательные дополнительные [""] значения хэша на Ruby 1.9.2 - PullRequest
0 голосов
/ 18 мая 2011

Мне было интересно, если я здесь что-то не так делаю.

вот код ruby ​​1.9.2, который я только что обновил с 1.8.6

def prepares_data(hash_nodes)
    @array_of_node = Array.new
    hash_nodes.each do | node |
      nodeId = node.values_at('self')[0].split('/').last
      text = node.values_at('data')[0].values_at('name')
      puts text
      @array_of_node << { :nodeId => nodeId, :text => text } 
    end
    puts @array_of_node
    return @array_of_node
  end

Так что, в основном, код просто добавляет кучу Hash в Array, и все в порядке. Когда я печатаю текст внутри цикла, я также получаю текстовый результат

What allergies do you have?
What dont you like?
What is your specific diet?

Однако, когда я распечатываю @array_of_node, я получаю это

{:nodeId=>"7", :text=>["What allergies do you have?"]}
{:nodeId=>"8", :text=>["What dont you like?"]}
{:nodeId=>"9", :text=>["What is your specific diet?"]}

В тексте у меня есть лишние ["..."], которые я не хочу. Как мне избавиться от этого, и я действительно не понимаю эту часть, потому что этот код прекрасно работал в ruby ​​1.8.7. Я сделал что-то не так здесь?

Большое спасибо.

1 Ответ

0 голосов
/ 18 мая 2011

Метод values_at возвращает массив, поэтому я думаю, именно поэтому это происходит. Попробуйте вместо этого передать ключ:

text = node.values_at('data')[0]['name']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...