Eu sou um garoto mau e usei a seguinte sintaxe nos meus modelos parciais para definir valores padrão para variáveis locais se um valor não fosse explicitamente definido no: locals hash ao renderizar o parcial -
<% foo = default_value unless (defined? foo) %>
Isso pareceu funcionar bem até recentemente, quando (por nenhuma razão que eu pudesse discernir) variáveis não passadas começaram a se comportar como se tivessem sido definidas como nulas (em vez de indefinidas).
Como foi apontado por várias pessoas úteis no SO, http://api.rubyonrails.org/classes/ActionView/Base.html diz para não usar
defined? foo
e em vez de usar
local_assigns.has_key? :foo
Estou tentando alterar meus caminhos, mas isso significa alterar muitos modelos.
Posso / devo apenas cobrar antecipadamente e fazer essa alteração em todos os modelos? Existe algum truque que eu preciso prestar atenção? Com que diligência eu preciso testar cada um?