箱のプログラミング日記。

渋谷の自社開発企業でRails書いてます。

フラッシュメッセージの作り方【Rails】

f:id:y_hakoiri:20191102121618j:plain

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

「登録が完了しました」「削除が完了しました」というように

正常な動作ができていることをユーザーに知らせるためのメッセージのこと。

 

Railsではリダイレクトとともに使われることが多いように思います

 

フラッシュメッセージの表示の仕方

今回、フリマアプリを作成中で

フラッシュメッセージの実装をしました

 

コントローラーでの記述

https://i.gyazo.com/77f6b4caa2c7d06992c85b984186f03f.png

エラーハンドリングをした上で

バリデーションに引っかかることなく、@postがcreateされたら

今createした商品のページにredirectするとともに、フラッシュメッセージを表示します

 

通常、フラッシュメッセージを指定する際は

flash[:notice]という形で定義しますが、

refirect_toとともに使用する場合は上のようにnotice: だけで指定ができます。

 

↓redirect_toを使わない場合

https://i.gyazo.com/240ee192ee2dac9c7cda055cec6a1fd0.png

こちらの例の場合

指定のページにredirectさせた上でのif分岐なので、この場合はflash[:notice]を使用

 

ビューでの記述

https://i.gyazo.com/9bf6797cea9f473026da5431cc4e8e87.png

この部分は部分テンプレート化させておくと

色々なページでそれぞれのアクションに対応したフラッシュメッセージを表示させることができ、

チーム開発において他のメンバーから大好評でした!

 

別途、CSSやJSで装飾するようにしてください。

 

以下参考

rails-study.net