Как отобразить уведомление Rails при перенаправлении?
У меня есть следующий код в контроллере Rails:
flash.now[:notice] = 'Successfully checked in'
redirect_to check_in_path
Затем в представлении /check _in:
<p id="notice"><%= notice %></p>
Однако уведомление не появляется. Прекрасно работает, если я не перенаправляю в контроллер:
flash.now[:notice] = 'Successfully checked in'
render action: 'check_in'
Мне нужно перенаправление, хотя... не просто рендеринг этого действия. Могу ли я получить уведомление о вспышке после перенаправления?
Ответы
Ответ 1
Удалите ".now". Так что просто напишите:
flash[:notice] = 'Successfully checked in'
redirect_to check_in_path
В настоящее время предполагается, что он используется только тогда, когда вы просто выполняете рендеринг, а не перенаправляете. При перенаправлении нельзя использовать .now.
Ответ 2
redirect_to new_user_session_path, alert: "Invalid email or password"
вместо :alert
вы можете использовать :notice
для отображения
Ответ 3
Или вы можете сделать это в одной строке.
redirect_to check_in_path, flash: {notice: "Successfully checked in"}
Ответ 4
У меня была та же проблема, и ваш вопрос решил мой, потому что я забыл включить в представление /check _in:
<p id="notice"><%= notice %></p>
В контроллере только одна строка:
redirect_to check_in_path, :notice => "Successfully checked in"
Ответ 5
Это тоже будет работать
redirect_to check_in_path, notice: 'Successfully checked in'
Ответ 6
Если вы используете Bootstrap, это отобразит на странице хорошо отформатированное флэш-сообщение, на которое нацелена ваша перенаправление.
В вашем контроллере:
if my_success_condition
flash[:success] = 'It worked!'
else
flash[:warning] = 'Something went wrong.'
end
redirect_to myroute_path
На ваш взгляд:
<% flash.each do |key, value| %>
<div class="alert alert-<%= key %>"><%= value %></div>
<% end %>
Это создаст HTML как:
<div class="alert alert-success">It worked!</div>
Для доступных стилей оповещения Bootstrap см.: http://getbootstrap.com/docs/4.0/components/alerts/
Ссылка: https://agilewarrior.wordpress.com/2014/04/26/how-to-add-a-flash-message-to-your-rails-page/