見出し画像

deviseを用いたログイン機能の中でエラーが発生した時にアラートを出す方法 @TECH CAMP #21

 どうもこんにちは、とだです。ニトリで作業机を買ったら作業が捗るようになりました。やったね!

 今日は簡単に小ネタを紹介します。あるWebサービス等でユーザー管理にdeviseを導入している場合、ログインの時にメールアドレスやパスワードを間違えて入力された際エラーを返すと思いますが、エラーが起きていることをユーザーに伝えるためにどうすればいいか、というネタです。
 flashメッセージを実装する方法もありますが、長くなるのでこれはまた別の機会に紹介します。この時は日本語化も合わせて紹介します。

 結論、viewファイルに以下の記述をすればOKです。

= alert

 はい。これだけです。実際には下のような感じにpタグ等を用いて使うイメージです。

.login-page__login
 .login-page__form.user-form
   = form_for(resource, as: resource_name, url: session_path(resource_name)) do |f|
     %p.alert
       = alert
     .field-email
       .field-email__input
         = f.email_field :email, autofocus: true, placeholder: 'メールアドレス'
     .field-password
       .field-password__input
         = f.password_field :password, autocomplete: "off", placeholder: 'パスワード'
       .actions
         = f.submit "ログイン", class: 'login-btn'

 エラーメッセージが出ているイメージは下の画像をご参照ください。

2020-09-02 21.36のイメージ

 alertの他に

= notice

 と書けば、動作成功時にそれを教えてくれます。

 大体の場合、flashメッセージを実装する場合が多いので、フォームの中でエラーメッセージを出すやり方は参考記事が少ないのが現状です。こんなやり方もあるよと知っていただけたら幸いです。

この記事が気に入ったらサポートをしてみませんか?