Я был плохим парнем и использовал следующий синтаксис в своих частичных шаблонах для установки значений по умолчанию для локальных переменных, если значение не было явно определено в хеше locals при рендеринге частичного
<% foo = default_value unless (defined? foo) %>
Кажется, что это было хорошо до недавнего времени, когда (без каких-либо причин я мог различить), не прошедшие переменные начали вести себя так, как если бы они были определены как nil (а не undefined).
Как было указано различными полезными людьми на SO, http://api.rubyonrails.org/classes/ActionView/Base.html говорит, что не использовать
defined? foo
и вместо этого использовать
local_assigns.has_key? :foo
Я пытаюсь изменить свои способы, но это означает изменение большого количества шаблонов.
Можно/должен ли я просто заряжать вперед и внести это изменение во все шаблоны? Есть ли какая-то хитрость, на которую мне нужно следить? Насколько усердно мне нужно проверить каждый?