Ошибка уведомления вспышки Ruby on rails

У меня проблема с flash[:notice] = "Message" в Ruby on Rails.

Я пытаюсь создать сообщение об ошибке входа в систему. Моя ошибка входа в систему:

flash[:notice] = "Invalid username/password combination."
redirect_to(:action => 'login')

По той причине, что я не знаю, предупреждение просто не появляется. У меня есть красные тонны возможных решений, но все они просто не работают для меня. Я использую браузеры Safari / Google Chrome.

1 ответ

Решение

Код вашего контроллера выглядит нормально. Я подозреваю, что ваша проблема не в том, что вы звоните flash неверный метод в вашем контроллере, но скорее вы не написали код (правильно) для отображения вспышки в вашем представлении.

flash просто содержит сообщение для отображения ваших просмотров. Вы правильно настраиваете сообщение, но, возможно, отображаете его неправильно. Я не могу сказать, потому что вы не публикуете свой код просмотра.

Например, если это действие является результатом отправки user/login.html.erb форма, основанная на коде вашего контроллера, вы хотели бы иметь следующий код внутри этого файла представления:

<% flash.each do |key, value| %>
  <div class="alert"><%= value %></div>
<% end %>

Этот код является более базовой версией того, что описано в этой статье.

Вспышка просто хранит значения, которые будут отображаться в представлении хэш. Поэтому мы должны использовать хэш в представлении с правильным ключом, который нам нужен.

Таким образом, всякий раз, когда значение устанавливается в этом ключе, оно будет отображаться в представлении, имеющем этот код.

Другие вопросы по тегам