Często w kodzie kontrolera widać użycie flash, np.:
flash[:notice] = "Author saved"
Powoduje to wyświetlenie komunikatu dla użytkownika przy najbliższym wyświetleniu jakiejkolwiek strony. I tylko przy najbliższym, czyli komunikat pokaże się raz.
Użycie flash można dodać jako parametr do redirect_to. Czyli zamiast linii:
flash[:notice] = "Author saved"
redirect_to authors_path
Można napisać w jednej lini:
redirect_to authors_path, notice: "Author saved"
Wyświetlenie komunikatu na stronie, musi być uwzględnione w kodzie widoku. Najlepiej jak mamy to zapisane w: /views/layouts/application.html.erb. Np. tak:
<% if flash[:notice].present? %>
<div class="alert alert-success">
<%= flash[:notice] %>
</div>
<% end %>
Nie jest to najlepszy kawałek do obsługi komunikatów, bo zamiast notice, możemy użyć też alert, czy nawet abc. I tu uwaga, możemy napisać:
flash[:abc] = "message"
Ale w redirect_to, możemy użyć tylko notice i alert. Żeby móc używać nasze abc w redirect_to, trzeba w /controllers/application_controller.rb dodać linię:
add_flash_types(:abc)