Ich baue eine Ruby on Rails-Anwendung und ich bin oft mit dem Fehler erfüllen:Ruby on Rails, return 0 statt Fehler
TypeError: nil can't be coerced into Float
oder String oder anderen Variablen-Typ, wenn ich eine Berechnung zu tun oder Fragen wie:
upcoming = Appointment.where(:hairdresser_id => hairdresser_id).where('status = ? OR status = ?', 'accepted', 'personal').map{|app| app.price}.reduce(0, :+)
glaube ich, das Problem zu verstehen, aber Sie wissen, ob es eine einfache Möglichkeit ist I 0 anstelle von Fehlern wie das zurückgeben kann, weil sie hat ein Friseur vielleicht derzeit nicht akzeptiert kommen vor, dass Termine.
Eine Lösung könnte sein, zu überprüfen, ob alles existiert, bevor die Berechnung durchgeführt wird, aber ich bin mir sicher, dass dies nicht die beste Lösung sein wird!
Danke für die Hilfe!
Ironischerweise ist die richtige Lösung, dies zu überprüfen Ding existiert vor der Berechnung. – mcfinnigan
Versuchen Sie, 'Enumerable # compact' vor' reduce' zu verwenden. Es entfernt "Null" -Werte. – Owen