2015-06-27 5 views
0

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

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

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

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

+2

Где вы показываете флеш-сообщения в представлении? Как выглядит ваше мнение? –

+0

Нет. В контроллере. Это предупреждение указано в инструкции if и работает, если пользователь не авторизовался. –

+1

Я думаю, @ChrisPeters просил вас в основном показать нам, как вы показываете предупреждения в своем HTML. Если он не был, то я :) –

ответ

2

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

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

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

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

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

1

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

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