J'ai été un mauvais garçon et utilisé la syntaxe suivante dans mon partiel de modèles, afin de définir des valeurs par défaut pour les variables locales si une valeur n'est pas définie explicitement dans l' :les habitants de hachage lors du rendu de l'partielle --
<% foo = default_value unless (defined? foo) %>
Tout semblait aller bien jusqu'à récemment, lorsque, pour aucune raison je ne pouvais discerner) non transmis variables commencé à se comporter comme si elles avaient été définies à zéro (plutôt que non-défini).
Comme il a été rappelé par divers gens utiles, http://api.rubyonrails.org/classes/ActionView/Base.html dit de ne pas utiliser
defined? foo
et au lieu d'utiliser
local_assigns.has_key? :foo
Je suis en train de modifier mes habitudes, mais cela implique de changer beaucoup de modèles.
Peut/doit je viens d'avancer et de faire ce changement dans tous les modèles? Est-il trickiness j'ai besoin de regarder pour? La façon diligente faire j'ai besoin de tester chacun d'eux?