フラッシュメッセージの実装
フラッシュメッセージとは
フラッシュメッセージとは、主に投稿した後に一時的に表示されるメッセージのことです。
例えば、ログインした時に、ログインしました。等の表示がされることを指しています。
フラッシュメッセージの実装
今回実装するメッセージは下記となります。
ログイン、ログアウト時にメッセージの表示
本の投稿完了時に完了メッセージの表示
ユーザー情報を編集した際に完了メッセージの表示
本の情報を編集した際に完了メッセージの表示
本の情報を削除した際に削除メッセージの表示
ログイン、ログアウト時のメッセージの表示
ログインと、ログアウトはメッセージの表示場所を記述することで、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