Rails мигает: уведомление не работает - PullRequest
5 голосов
/ 07 октября 2011

У меня есть этот код:

def create
  login(params[:email], params[:password])

  if current_user
    flash[:notice] = "Welcome back #{current_user.email}"
    return redirect_to_first_page
  else
    flash[:notice] = "Email or password is wrong. Try again !"
    redirect_to root_url
  end
end

при успешном входе в систему устанавливается флэш-память и производится перенаправление на первую страницу.Эта часть работает.Вторая часть не устанавливает сообщение уведомления о вспышке.Затем, когда страница отображается, сообщение от вспышки не отображается.Что отличается я пытаюсь иметь

return redirect_to root_url

, но ничего по-прежнему ничего не показывает.В моем контроллере у меня есть помощник типа flash_notice, все, что он делает, это возвращает flash [: note].Это потому, что вспышка всегда пуста в представлении, но доступна в контроллере.В представлении у меня есть только одна строка:

<%= flash_notice %>

Я использую рельсы 3.1

1 Ответ

7 голосов
/ 08 октября 2011

Крис Дрэппер корректен, флэш-хэш актуален только для одного запроса. Вы можете вызвать метод keep с помощью

flash.keep[:notice]="This message will persist"

Лично мне нравится держать эту вспышку в параметрах, когда это необходимо. Кровавые подробности здесь:

http://guides.rubyonrails.org/action_controller_overview.html#the-flash

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...