необязательные локальные переменные в частичных шаблонах rails: как мне выйти из (определенного? foo) беспорядка?

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

Я пытаюсь изменить свои способы, но это означает изменение большого количества шаблонов.

Можно / нужно просто зарядить заранее и внести это изменение во все шаблоны? Есть ли какая-то хитрость, за которой мне нужно следить? Насколько усердно мне нужно проверять каждого?

Ответы на вопрос(12)

Ваш ответ на вопрос