ruby-on-rails prüfen ob Abfrage-Ergebnis leer (- Modell.finden)
im mit ruby on rails und versucht, zu überprüfen, ob eine Abfrage gibt einen Wert zurück oder nicht.
Dies ist die Abfrage:
@search = Customer.find_by_name($login_name)
Wenn die Abfrage sucht nach einem Ergebnis, alles ist in Ordnung, aber wie kann ich reagieren auf leere Ergebnisse?
Habe ich versucht:
if @search.empty?
flash[:notice] = 'Username nicht bekannt'
redirect_to :action => :login
end
Aber ich bekomme eine Fehlermeldung:
undefined method `empty?' for nil:NilClass
Irgendwelche Ideen, was falsch gelaufen ist?
Danke!!!!!
InformationsquelleAutor Tobi89 | 2012-12-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden, um zu überprüfen für die null als auch leeren Fällen:
Für den umgekehrten Fall (NICHT null und NICHT leer ist), verwenden Sie .vorhanden?:
Den Grund Ihrer Abfrage zurückgegeben
nil
stattempty
ist :gibt immer ein Ergebnis-Objekt
Customer
odernil
wenn es keine solche Folge,während so etwas wie:
zurück
ActiveRecord::Relation
(das können 0-n Resultate) immer. undempty?
Methode wird auf ihnInformationsquelleAutor Rahul garg
Wenn kein Ergebnis gefunden wird, wird
find_by_name
gibt ein null-Objekt, sondern als ein leeres array. Um zu überprüfen, ob ein Kunde gefunden wurde, können Sieif @search.nil?
oder einfachif !@search
oderunless @search
, da null ist falsy in ruby.InformationsquelleAutor Fiona T