undefinierte Methode 'include?' für nil: NilClass mit teilweiser Validierung des Wizards gem

8

Ich versuche, den Leitfaden für die teilweise Überprüfung des Objekts mit dem Zauberer-Juwel zu befolgen, aber ich erhalte weiterhin die Fehlermeldung undefined Methode 'include?' für nil: NilClass, kann nicht verstehen, was falsch ist, habe versucht, die Anweisungen Schritt für Schritt zu folgen.

Der Fehler im Protokoll zeigt.

%Vor%

Hier ist mein Schritt-Controller.

%Vor%

Property.rb

%Vor%

Lassen Sie es mich wissen, wenn Sie weitere Teile zur Frage hinzufügen müssen. Vielen Dank im Voraus.

    
cyclopse87 05.08.2013, 16:42
quelle

3 Antworten

5

Aus meinen Kommentaren:

Das status ist ein Attribut Ihres Property-Modells. Es kann nil sein, was in bestimmten Fällen zu einem Fehler führt:

%Vor%

Es versucht tatsächlich, nil mit 'tenants' (String) zu vergleichen.

Um das zu beheben können Sie eine leere Zeichenfolge zum Vergleichen verwenden, wenn status ist nil ,

%Vor%

in Ihrem Fall:

%Vor%

nil.to_s gibt eine leere Zeichenfolge zurück. Welches löst dein Problem;)

Tatsächlich werden oft die Methoden to_s , to_i , to_f usw. verwendet, um die mögliche nil zu entfernen:

%Vor%     
MrYoshiji 05.08.2013, 17:06
quelle
1

Es gibt noch eine andere Lösung: Sie sollten bei der Objekterstellung einen Standardstatus festlegen, vorzugsweise bei der Migration.

%Vor%

Danach haben Sie nie nil für Ihren Status

    
Tomaž Zaman 19.10.2013 16:46
quelle
1

In Ruby 2.3 können Sie den sicheren Navigationsoperator verwenden, der einfach null zurückgibt, wenn Ihr Objekt null ist und es wird keinen Fehler werfen.

%Vor%     
Omar Bahareth 16.01.2017 07:12
quelle