Study
Ruby on Rails

Flash Messages

Penjelasan

Flash message adalah pesan sementara yang disimpan di session dan hanya bertahan untuk request berikutnya — cocok untuk notifikasi seperti "Catatan berhasil disimpan" setelah redirect. Rails menyediakan `flash[:notice]` untuk pesan sukses dan `flash[:alert]` untuk pesan peringatan/error secara konvensi, meski kamu bisa pakai key apa pun. Flash biasanya di-set di controller lalu ditampilkan di layout supaya muncul di semua halaman.

Contoh Konsep

# di controller
def create
  @catatan = Catatan.new(catatan_params)
  if @catatan.save
    redirect_to @catatan, notice: "Catatan berhasil disimpan!"
  else
    flash.now[:alert] = "Gagal menyimpan catatan"
    render :new
  end
end

Menampilkan di Layout

<!-- app/views/layouts/application.html.erb -->
<% if flash[:notice] %>
  <p class="notice"><%= flash[:notice] %></p>
<% end %>
<% if flash[:alert] %>
  <p class="alert"><%= flash[:alert] %></p>
<% end %>

Praktikum

Lengkapi redirect agar menyertakan flash notice "Catatan berhasil disimpan!" setelah create sukses.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Pakai `flash[:notice]` saat kamu melakukan `redirect_to` (pesan bertahan satu request lagi), tapi pakai `flash.now[:alert]` saat kamu langsung `render` di action yang sama (tanpa redirect) — kalau tertukar, pesan bisa muncul dua kali atau malah tidak muncul sama sekali.