Fui un niño malo y usé la siguiente sintaxis en mis plantillas parciales para establecer valores predeterminados para las variables locales si un valor no se definió explícitamente en: hash locals al representar el parcial -
<% foo = default_value unless (defined? foo) %>
Esto parecía funcionar bien hasta hace poco, cuando (sin ninguna razón que pudiera discernir) las variables no pasadas comenzaron a comportarse como si hubieran sido definidas como nulas (en lugar de indefinidas).
Como lo han señalado varias personas útiles en SO, http://api.rubyonrails.org/classes/ActionView/Base.html dice no usar
defined? foo
y en lugar de usar
local_assigns.has_key? :foo
Estoy tratando de enmendar mis formas, pero eso significa cambiar muchas plantillas.
¿Puedo / debo cobrar por adelantado y hacer este cambio en todas las plantillas? ¿Hay algún truco que deba vigilar? ¿Cuán diligentemente necesito probar cada uno?