3 Stimmen

Wie prüft man in Ruby, ob ein Objekt zu einem Array gehört?

Normalerweise muss ich Dinge überprüfen wie:

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

Gibt es eine Möglichkeit, etwas zu schreiben wie:

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

Ich danke Ihnen.

6voto

fl00r Punkte 81243

Rails 3.1 hat dies Object.in? Methode

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

character = "Konata"
character.in?("Konata", "Kagami", "Tsukasa") # => true

4voto

phlogratos Punkte 12429

Si @user.name ist eine String können Sie hinzufügen in? a String .

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

Dies hat folgende Auswirkungen:

irb(main):011:0> 'Bob'.in? ['Bob','Mary','John']
=> true
irb(main):012:0> 'Jane'.in? ['Bob','Mary','John']
=> false

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X