フラッシュメッセージの実装

フラッシュメッセージとは

フラッシュメッセージとは、主に投稿した後に一時的に表示されるメッセージのことです。

例えば、ログインした時に、ログインしました。等の表示がされることを指しています。

フラッシュメッセージの実装

今回実装するメッセージは下記となります。

  • ログイン、ログアウト時にメッセージの表示

  • 本の投稿完了時に完了メッセージの表示

  • ユーザー情報を編集した際に完了メッセージの表示

  • 本の情報を編集した際に完了メッセージの表示

  • 本の情報を削除した際に削除メッセージの表示

ログイン、ログアウト時のメッセージの表示

ログインと、ログアウトはメッセージの表示場所を記述することで、deviseのデフォルト設定で表示されます。

また、今回はフラッシュメッセージの表示場所がすべて同じのため、layouts/application.html.erbに記述していく。

app/views/application.html.erb(main部分のみ抜粋)

  <main>
    <p class="notice"><%= notice %></p>
  <%= yield %>
  </main>

これでログイン、ログアウト時にフラッシュメッセージを表示することができます。

本の投稿完了時に完了メッセージの表示

booksコントローラのcreateアクションに記述していきます。

app/controllers/books_controller.rb(一部抜粋)

    if @book.save
      flash[:notice] = "You have created book successfully."
      redirect_to book_path(@book)

新規投稿完了したif文の中に記述を追加する。

ユーザー情報を編集した際に完了メッセージの表示

usersコントローラのupdateアクションに記述していきます。

app/controllers/users_controller.rb(一部抜粋)

    if @user.update(user_params)
      flash[:notice] = "You have updated user successfully."
      redirect_to user_path(@user)

ユーザー情報の更新が完了したif文の中に記述を追加する。

本の情報を編集した際に完了メッセージの表示

booksコントローラのupdateアクションに記述していきます。

app/controllers/books_controller.rb(一部抜粋)

    if @book.update(book_params)
      flash[:notice] = "You have updated book successfully."
      redirect_to book_path(@book.id)

本の情報を更新完了したif文の中に記述を追加する。

本の情報を削除した際に削除メッセージの表示

booksコントローラのdestroyアクションに記述していきます。

app/controllers/books_controller.rb(一部抜粋)

    book.destroy
    flash[:notice] = "You have destroyed book successfully."
    redirect_to books_path

本の情報の削除が完了したif文の中に記述を追加する。

以上。

アプリケーションの作成 参考URL  作成するアプリケーションについて - takifugu’s blog