Ошибка уведомления вспышки 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 %>
Этот код является более базовой версией того, что описано в этой статье.
Вспышка просто хранит значения, которые будут отображаться в представлении хэш. Поэтому мы должны использовать хэш в представлении с правильным ключом, который нам нужен.
Таким образом, всякий раз, когда значение устанавливается в этом ключе, оно будет отображаться в представлении, имеющем этот код.