Beginner Rails Artikel von Anfängern für Anfänger geschrieben
Ich wollte mit dem Controller einen Wert in die Instanzvariable einfügen, aber sie war tatsächlich leer (null), und es war ein Rätsel, dass kein Fehler auftrat, selbst wenn ich die Variable zur Ansicht übergab.
Der Grund ist, dass bei der Ausgabe von ** <% = Ausdruck%>
die Methode to_s
für den Ausdruck ** aufgerufen wird.
Das heißt, die resultierende Ausgabe ist immer automatisch "<% = expression.to_s%>". Der Grund, warum diese Methode verwendet werden kann, ist, dass alle Ruby-Objekte eine "to_s-Methode" haben.
Wenn Sie die Methode "to_s" für eine leere Instanz ("nil.to_s") aufrufen, werden ** leere Zeichen ausgegeben **. Ich erhalte keine Fehlermeldung und es wird nichts so angezeigt, wie es ist.
#controller
@name = nil
#view
<p><%= @name.to_s %>Herr.</p>
#Ausgabe
#=>Herr.
Es ist schwer zu bemerken, wenn ich gerade lerne, weil es keine Fehler gibt, aber es scheint einfacher zu sein, herauszufinden, welche Art von Problem auftritt, wenn ich verstehe, dass "dies hinter den Kulissen passiert". Von da an dachte ich wieder, dass ich weiter richtig lernen würde.
Recommended Posts