Check


プログラミングが無料で学べるYouTubeチャンネルを配信中!

RubyやPython、PHPやReactなど様々なプログラミング言語のチュートリアル動画が充実!

チャンネル登録はこちら

Ruby

【Ruby on Rails】簡単なメモアプリの作成|非同期通信でフラッシュメッセージの実装

Ruby on Rails フラッシュメッセージ

動画で解説を見る



開発環境

  • Ruby:version 3.1.2
  • Ruby on Rails:version 7.0.4
  • Visual Studio Code:version 1.73.0
  • OS:Windows10

Ruby on Railsで非同期通信にフラッシュメッセージの実装手順

Ruby on Railsのフラッシュメッセージは、Create(生成)、Read(読み込み)、Update(更新)、Delete(削除)などはもちろん、ユーザーのログイン成功やログアウト成功などでも当たり前に行われています。

今回はメモアプリの作成で使用した「フラッシュメッセージ」のコードを用いて解説していきます。

フラッシュメッセージの部分テンプレートを作成

まずはフラッシュメッセージの部分テンプレートを作成していきます。

今回はWebアプリケーション全体で使用するテンプレートなため、「memo_app\app\views\layouts」のフォルダ内に作成します。

次に「memo_app\app\views\layouts\application.html.erb」でフラッシュメッセージのテンプレートを呼び出します。

後程、非同期通信でフラッシュメッセージを再度呼び出すため、「ID」を付与しておきます。

コントローラーでフラッシュメッセージに値を渡す

次にコントローラーでフラッシュメッセージに値を渡すプログラムを記述します。

if文でDBへの保存に成功した時と失敗した時でフラッシュメッセージに渡す値を分岐させています。

また、「flash」と「flash.now」では、フラッシュメッセージが残るスコープ範囲が異なりますが、今回はレンダーで一度のみ表示したいため、「flash.now」で記述しています。

JavaScriptでフラッシュメッセージを呼び出す

次に、非同期通信でフラッシュメッセージを呼び出すために「ajax_create.js.erb」を編集していきます。

フラッシュメッセージに動きをつけたいため、JQueryライブラリの「show」と「fadeOut」を使用しています。

注意点としては、非同期通信の場合は画面の変異がないためWebページは再読み込みされないので、JSでアニメーションをつける場合も処理の順番を考える必要があります。

例えば、「表示があったものを非表示にする」だけにした場合、1度目で非表示にしてしまっているため、2回目以降はフラッシュメッセージが表示されないことになります。

そのため、1度目は「表示があったものを表示して非表示にする」ことにより、2回目以降は「非表示だったものを表示して非表示にする」という処理を行っています。

フラッシュメッセージのデザインを調整

最後にフラッシュメッセージのデザインを調整していきます。

色は好みになってくると思いますが、日本だと成功したときの色は「緑色」、失敗したときの色は「赤色」がイメージしやすいかと思います。

おわりに

Ruby on Railsでフラッシュメッセージの実装について解説してきましたが、いかがだったでしょうか。

今回は新規投稿の非同期通信にエラーメッセージが表示されるように実装していきましたが、通常の動機通信でも同じ理屈でフラッシュメッセージを実装することができます。

是非、ユーザーがWebアプリケーションを使いやすいようにするためにも、フラッシュメッセージの実装にチャレンジにしてみてください。

Check


プログラミングが無料で学べるYouTubeチャンネルを配信中!

RubyやPython、PHPやReactなど様々なプログラミング言語のチュートリアル動画が充実!

チャンネル登録はこちら

-Ruby