前提・実現したいこと
現場Railsの書籍を見ながらタスク管理アプリを作成しているのですが、アドレスとパスワードを入力してログインをしようとしたらできず困っています。
ご教示のほど宜しくお願い致します。
発生している問題・エラーメッセージ
NoMethodError in SessionsController#create undefined method `find_by' for nil:NilClass https://gyazo.com/bbf21fbbff41e416289e5e54cb193747
app/views/sessions/new.html.slim
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/controllers/sessions.controller.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
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。