Ruby
hanami

Hanamiでflashメッセージを表示する

Hanamiでflashメッセージを表示する方法です :cherry_blossom:

バージョン

  • Ruby 2.4.2
  • Hanami 1.1.0

事前準備

hanamiでは、デフォルトでセッションが無効になっているため、セッションを有効にする必要があります。
apps/web/application.rbを編集し、セッションを有効にします。

apps/web/application.rb
-      # sessions :cookie, secret: ENV['WEB_SESSIONS_SECRET']
+      sessions :cookie, secret: ENV['WEB_SESSIONS_SECRET']

使い方

コントローラーでメッセージを定義

flash[キー] = 値 で値を設定できます。(キーの名前は任意です。)

flash[:success] = '成功しました。'

ビューで表示

<%= flash[:success] %>
実装例
<% %i[success danger notice].each do |key| %>
  <p class="#{key}"><%= flash[key] %></p>
<% end %>

Railsと違うところ

  • Railsではflashflash.nowflash.keep等使えますが、hanamiでは、flash.nowflash.keepのような機能はありません。

  • ビューで表示する際、Railsだと、よくflash.each do |key, value|~みたいな書き方をしますが、hanamiではできません。(eachができません)

参考