Я був поганою дитиною і використовував наступний синтаксис у своїх часткових шаблонах для встановлення значень за замовчуванням для локальних змінних, якщо значення не було чітко визначено в:
<% foo = default_value unless (defined? foo) %>
Це, здавалося, спрацювало нормально до недавнього часу, коли (з якихось причин я не міг розрізнити) непередані змінні почали поводитись так, ніби вони були визначені нульовими (а не визначеними).
Як вже вказували різні корисні люди в програмі SO, http://api.rubyonrails.org/classes/ActionView/Base.html говорить, що не використовувати
defined? foo
і замість цього використовувати
local_assigns.has_key? :foo
Я намагаюся внести зміни в свої способи, але це означає змінити багато шаблонів.
Чи можу я / повинен заряджати лише вперед та вносити цю зміну у всі шаблони? Чи є якась хитрість, яку мені потрібно стежити? Як старанно мені потрібно перевірити кожного?