0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Railsで架空のCafeのHPを作ってみよう!【11日目】『deviseのログイン画面でエラーメッセージを表示』編

Posted at

#概要
基本Railsの記法に則り書いていきます!
1から全ての説明ではなく
その中であれ?どうやるの?と
疑問に思った点や実装に困った箇所を
ピックアップして紹介していきます♩

#設定と準備
・Rails
・HTML
・CSS
・Javascript(jQuery)

↑上記の言語とフレームワークを使い
架空(自分で考えたテキトーなもの)のCafeの
HPを作っていこうと思います!

#11日目の作業内容:round_pushpin:
・ビューの作成(deviseのデフォルト画面をレイアウト)

#11日目の気になった箇所:zap:
deviseのsign up画面ではエラーメッセージが表示されるのに
sign in画面ではエラーメッセージが表示されない。

#仮説:pushpin:
deviseにはデフォルトでエラーメッセージを表示させるための
shared/_error_messages.html.erbというファイルが存在するため、
renderでそのファイルを呼び出せば表示できるのではないか。

sign up画面の場合

registrations/new.html.erb
<%= render "/shared/error_messages" %>

と記述することでエラーメッセージの表示に成功できたので
同じようにようにsign in画面でも

sessions/new.html.erb
<%= render "/shared/error_messages" %>

とすれば表示されるのではないかと思ったが表示されなかった。

#結論:star:
sign in画面では違う記述の仕方でなければ
エラーメッセージの表示ができないことがわかった。

sessions/new.html.erb
<%= flash[:notice] %>
<%= flash[:alert] %>

上記の記述をエラーメッセージを表示させたい箇所に追加することで
可能となる。
flashとはRailsでようされているオブジェクトのことらしい。
一時的にメッセージを表示してくれる機能のようなものらしいです。
これでエラーメッセージの表示には成功!

補足になりますがdevise.ja.ymlを導入し
日本語でエラーメッセージを表示させる方法をとられている方は

devise.ja.yml
ja:
  devise:
    failure:
      not_found_in_database: "%{authentication_keys}またはパスワードが違います。"

こちらの箇所を変更するとsign in画面でのエラーメッセージ内容を変更できるので
お試しください!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?