Rails: как передать flash от одного помощника другому
Привет у меня есть помощник рельсы для сбора флэш-сообщений в движке X
def flash_messages
message = []
flash.each do |k,m|
message << m
end
message
end
Теперь я переопределил эту функцию в моем главном помощнике приложения
include X:Xhelper
def flash_messages
message = []
if required_message
flash.each do |k,m|
message << m
end
else
message = "Flash messages are not displayed"
end
message
end
Теперь, когда я использую это, я получаю ошибку "неопределенная локальная переменная или метод`flash'для Object:Class", которая возникает из-за того, что flash не определен для помощника.
Спасибо
1 ответ
Решение
Рельсы flash
присутствует в контексте запроса и управляется внутри, используя часть сеанса. Таким образом, метод, который ссылается на flash, должен быть в этом контексте, другими словами, контроллером. Помощники Rails по умолчанию доступны только в представлениях, а не в контроллерах. Если вы переместите свой метод в ApplicationController, то он должен иметь доступ к флэш-памяти.
Вот документация по Railsflash