У меня довольно старая система шаблонов, написанная поверх ERB. Он опирается на шаблоны ERB, хранящиеся в базе данных. Те, которые читаются и отображаются. Когда я хочу передать данные из одного шаблона в другой, я использую параметр: locals для метода рендеринга Rails. Для установки переменных по умолчанию этих переменных в некоторых шаблонах я использую определенные? метод, который просто сообщает мне, была ли определена локальная переменная, и если нет, я инициализирую ее значением по умолчанию, например:
unless defined?(perex)
perex = true
end
Я обновляю приложение до последней версии Rails и вижу странное поведение. В основном это иногда работает (иногда perex не определен), а иногда нет (perex определен и имеет значение nil). Это происходит без каких-либо изменений.
У меня два вопроса:
Есть ли лучший способ, кроме использования определенных? что оказывается ненадежным (был надежным в течение нескольких лет на лучших Rails 1.6)? Такой способ не должен приводить к переписыванию всех шаблонов.
Я просматривал документы по Ruby и не смог найти что-либо об определенном? метод. Это устарело или я просто слепой?
Редактировать: Фактическая проблема была вызвана ошибкой в Ruby / eRB. Иногда , если только оператор будет работать, но иногда нет. Странная вещь в том, что, даже если вторая строка была выполнена, 1011 * perex все равно остался бы нулевым для остального мира. Удаление определено? решил это.