2016-07-14 4 views
0

Ich erstelle eine Methode, die mir einen booleschen Wert senden soll. Aber darin gibt es eine Schleife, die auch boolean sendet. Manchmal sendet die Schleife true manchmal falsch und ich möchte, dass meine Methode true sendet, sobald eine wahr ist.Wie boolean als Methodenergebnis erstellt wird?

Für den Moment, als ich meine Methode, wie nennen:

person.update_with_former_email?("[email protected]") 

sendet er mir das ganze Objekt self.versions

Antwort

3

each kehrt das Objekt, um es auf, das heißt self genannt wurde.

def update_with_former_email?(update_email) 
    self.versions.each do |version| 
    next if version.object.nil? 
    return true if version.object.include?(update_email) 
    end 

    return false 
end 

oder besser Verwendung any? statt each: eine tatsächliche boolean Wert von include? abgeleitet zurückzukehren, können Sie return verwenden

def update_with_former_email?(update_email) 
    self.versions.any? do |version| 
    version.object.present? && version.object.include?(update_email) 
    end 
end 
+1

Es funktioniert gut ich danke Ihnen sehr! – Orsay

Verwandte Themen