アカウントを作る時に入力ミスがあればエラーのフラッシュを出すようにする

さて、今回は前回に引き続きフラッシュ関連で アカウントを作る時に正常に登録できなかった時に どの項目でミスが起きてるのかをわかりやすくするために フラッシュを利用して表示させようと思う。

現状としては、まだ3項目ほどしか入力できる領域がないものの 後々増やしていった時にregistrationのファイルに全部詰め込んでしまうと かなりのコード量となってしまうので、そうなった場合に 途端に見にくくなってしまう。

できるだけ見にくくなることを防ぐために まずはエラーのフラッシュ専用のファイルを作る。

部分的に作用させたいので ディレクトリはわかりやすくpartialに作成。

名称は_deviseErrorMsg.html.erbとしておく。 ファイルができたところで早速コーディング。

前回と同じようにtoastrを使用するので ほとんど同じような内容にする。

<% unless resource.errors.empty? %> toastr.error(''); <% end %>

こんな感じでいいかな もちろんこれだけではちゃんと機能してくれないので renderでファイルを連携させるようにしなきゃいけない。

とりあえず、deviseの中のファイルでどこがエラーを返すのかを 確認していく。

一通り見た結果、 comfirmations passwords registraions unlocks この中にあるファイル全部で <%= devise_error_maggages! %> のコードを発見。

おそらくこれを変えたらちゃんと全部で作用してくれると思うので renderを使って

<%= render 'partial/deviseErrorMsg' %>

これに置き換える

さてこれでちゃんとフラッシュとして表示してくれるか ブラウザで確認。

アカウント作成の画面から何も入力せずにスクリーンショット 2017-08-11 18.24.26.png

この状態から作成するボタンを押してみる

スクリーンショット 2017-08-11 18.24.33.png

やったぜ!右上でちゃんとエラー表示出してくれてる。 でも英語表記なんだよなぁ。。

まぁとりあえずはエラーに関してもフラッシュ表示できるようになったし 日本語化に関しては後々やっていこう。

 

よし、今回はここまで!

ではー。

この記事をシェアする