optionale lokale Variablen in Rails Teilvorlagen: Wie komme ich aus dem (definierten? foo) Durcheinander heraus?

Ich war ein böser Junge und habe in meinen Teilvorlagen die folgende Syntax verwendet, um Standardwerte für lokale Variablen festzulegen, wenn ein Wert nicht explizit im Hash von local beim Rendern des Teils definiert wurde.

<% foo = default_value unless (defined? foo) %>

Dies schien bis vor kurzem in Ordnung zu sein, als sich nicht übergebene Variablen (ohne dass ich dies feststellen konnte) so zu verhalten begannen, als wären sie auf null (anstatt auf undefiniert) gesetzt worden.

Wie von verschiedenen hilfreichen Personen auf SO hingewiesen wurde,http://api.rubyonrails.org/classes/ActionView/Base.html sagtnicht benutzen

defined? foo

und stattdessen zu verwenden

local_assigns.has_key? :foo

Ich versuche, meine Methoden zu ändern, aber das bedeutet, viele Vorlagen zu ändern.

Kann / sollte ich einfach im Voraus aufladen und diese Änderung in allen Vorlagen vornehmen? Gibt es irgendwelche Schwierigkeiten, auf die ich achten muss? Wie sorgfältig muss ich jeden einzelnen testen?

Antworten auf die Frage(12)

Ihre Antwort auf die Frage