2013-12-19 2 views
-2

Следующий поиск кода, если ключевое слово появляется в хэш-значений и печать да если да, то , но она хорошо работает в codeacademy консоли, но в моем RubyMine это дает мне исключение,Как получить ключи от хэш-рубин

NoMethodError: не определено метод `keys 'для nil: NilClass

Я попытался использовать метод each_key, но это был тот же rusult.

arr = [ 
{ name: "2222", num:"4444 kod"}, 
{ name: "3222 kod", num:"43423444"}, 
{ name: "224422", num:"4442424"} 
] 

p = "kod" 

arr.each do |frelancer| 
frelancer.keys.each do |key| 
    if frelancer[key].split(" ").include? (p) 
     puts "yes" 
    esle 
    puts "no" 
    end 

конца

Может ли вы дать несколько советов)

+2

Опубликовать реальный код - ясно, что это не анализируется (например, 'esle') – Matt

+1

Где находится' end' за два блока, которые вы написали? Ruby =/= Python –

+0

Когда проблемы с синтаксисом в вашем коде исправлены, он работает отлично для меня и создает: «нет, да, да, нет, нет, нет». В чем проблема? –

ответ

3

У вас есть 2 ошибки:

  1. Вы писали esle вместо else
  2. Вы отсутствующие один end пункта
0

Ваши блоки нуждаются в end ключевое слово. И else должно быть написано правильно.

arr.each do |frelancer| 
    frelancer.keys.each do |key| 
    if frelancer[key].split(" ").include? (p) 
     puts "yes" 
    else 
     puts "no" 
    end 
    end 
end 
Смежные вопросы