Как проверить, принадлежит ли объект массиву в Ruby - PullRequest
2 голосов
/ 31 марта 2012

Мне обычно приходится проверять такие вещи, как:

if ['Bob','Mary','John'].include? @user.name

Есть ли способ написать что-то вроде:

if @user.name.in? ['Bob','Mary','John']

Спасибо.

Ответы [ 2 ]

5 голосов
/ 31 марта 2012

Rails 3.1 получил этот Object.in? метод

characters = ["Konata", "Kagami", "Tsukasa"]
"Konata".in?(characters) # => true

character = "Konata"
character.in?("Konata", "Kagami", "Tsukasa") # => true
4 голосов
/ 31 марта 2012

Если @user.name является String, вы можете добавить in? к String.

class String                                                                                                                                                          
  def in? a
    a.include? self
  end
end

. Это имеет следующий эффект:

irb(main):011:0> 'Bob'.in? ['Bob','Mary','John']
=> true
irb(main):012:0> 'Jane'.in? ['Bob','Mary','John']
=> false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...