前提・実現したいこと
現場Railsの書籍を見ながら、タスク管理アプリを作成しています。アドレスとパスワードを入力してログインしようとしたらundefined method `find_by' for nil:NilClassとでてログインできず困っています。
ご教示の程宜しくお願い致します。
発生している問題・エラーメッセージ
NoMethodError in SessionsController#create undefined method `find_by' for nil:NilClass
ログインしようとした画面
該当のソースコード
app/views/sessions/new.html.rb
h1 ログイン = form_with scope: :session, local: true do |f| .form-group = f.label :email, 'メールアドレス' = f.text_field :email, class: 'form-control', id: 'session_email' .form-group = f.label :password, 'パスワード' = f.password_field :password, class: 'form-control', id: 'session_password' = f.submit 'ログインする', class: 'btn btn-primary'
app/comtrollers/sessions.contoroller.rb
class SessionsController < ApplicationController skip_before_action :login_required def new end def create user = User.find_by(email: session_params[:email]) if user&.authenticate(session_params[:password]) session[:user_id] = user.id redirect_to root_url, notice: 'ログインしました。' else render :new end end def destroy reset_session redirect_to root_url, notice: 'ログアウトしました。' end private def session_params params.require(:session).permit(:email, :password) end end
7行目に関してエラーが出ているようです。
試したこと
インデント確認
補足情報(FW/ツールのバージョンなど)
Rails:6.1
pc:MacbookAir