используя `include?` в ruby, чтобы проверить, есть ли что-то в хэше - PullRequest
6 голосов
/ 15 ноября 2009

Я знаю, как работает include?, но не совсем понятно, как использовать его с многомерным массивом или хэшем (возможно ли это с хэшем?)

Например, если у меня есть хеш, который выглядит следующим образом:

@user.badges => [{:id => 1, :name => 'blahh', :description => 'blah blah blah'}, {:id => 2, :name => 'blahh', :description => 'blah blah blah'}]

Могу ли я посмотреть, есть ли в нем объект с идентификатором 1?

if @user.badges.include?(:id => 1)
  # do something
end

Кажется, это не работает, как я могу правильно написать этот метод?

1 Ответ

13 голосов
/ 15 ноября 2009

Это недопустимый синтаксис Ruby. Вы хотите:

@user.badges.any? { |b| b[:id] == 1 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...