J'ai été un mauvais gamin et j'ai utilisé la syntaxe suivante dans mes modèles partiels pour définir des valeurs par défaut pour les variables locales si une valeur n'était pas explicitement définie dans le: hachage local lors du rendu du partiel -
<% foo = default_value unless (defined? foo) %>
Cela a semblé fonctionner correctement jusqu'à récemment, quand (pour aucune raison je ne pouvais discerner) les variables non passées ont commencé à se comporter comme si elles avaient été définies à zéro (plutôt qu'indéfinies).
Comme il a été souligné par diverses personnes utiles sur SO, http://api.rubyonrails.org/classes/ActionView/Base.html dit pas à l' utilisation
defined? foo
et au lieu d'utiliser
local_assigns.has_key? :foo
J'essaie de modifier mes manières, mais cela signifie changer beaucoup de modèles.
Puis-je / devrais-je simplement charger à l'avance et effectuer cette modification dans tous les modèles? Y a-t-il une astuce que je dois surveiller? Avec quelle diligence dois-je tester chacun d'eux?