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'
エラーメッセージが出ているイメージは下の画像をご参照ください。
alertの他に
= notice
と書けば、動作成功時にそれを教えてくれます。
大体の場合、flashメッセージを実装する場合が多いので、フォームの中でエラーメッセージを出すやり方は参考記事が少ないのが現状です。こんなやり方もあるよと知っていただけたら幸いです。
この記事が気に入ったらサポートをしてみませんか?