Я был плохим парнем и использовал следующий синтаксис в моих частичных шаблонах, чтобы установить значения по умолчанию для локальных переменных, если значение не было явно определено в хеше: 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
Я пытаюсь изменить свои способы, но это означает изменение большого количества шаблонов.
Можно / нужно просто зарядить заранее и внести это изменение во все шаблоны? Есть ли какая-то хитрость, за которой мне нужно следить? Насколько усердно мне нужно проверять каждого?