①ビューファイルが作られる
②userコントローラーと、その中にアクションメソッドが作られる
③ルート設定も作られる
①②③があれば、ページにアクセスできる
ログイン出来ました!
ユーザー名:abc
パスワード:********
画面を変えると…
ログインしてください
?
①ビューファイルが作られる
②userコントローラーと、その中にアクションメソッドが作られる
③ルート設定も作られる
sessionコントローラー
ログインページ
①コードのこの部分が、
②この入力欄なって、
④ params に入れられる
③ここに入力した内容が、
※ params[:name]の :name は、
コードのこの部分の名前が使われる
if @user.password_digest == params[:password_digest]
」がポイントです。
@user.password_digest
)」と、params[:password_digest]
)」を比較して、等しい時だけ session に保存し、ページを変化させています。@user = User.find_by(name: params[:name])
」の部分で、データベースに存在しないユーザーは取得できないため、@user の中身は nil になります。@user.password_digest
」の部分で、「@user の中身がないのに、メソッドを使おうとしてる」というエラーになっています。 @user.password_digest
」の部分が実行されることはなくなり、エラーにならないということです。<%= flash[:notice] %>
を追加しましょう。ログイン成功
ログイン失敗
sessionコントローラー
ログインページ