未定义的方法'find_by_email'错误

Tom*_*hen 2 ruby ruby-on-rails

好吧,我已经在这个工作了大约2个小时,我相信有一个非常简单的解决方案但不幸的是作为一个铁路新手,我似乎无法找到它.

我按照Ryan Bates认证课程#270建立了一个基本的注册和登录系统.

但是我在尝试登录时仍然收到同样的错误.

undefined method `find_by_email' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

我的会话控制器设置如下:

class SessionsController < ApplicationController
    def new
    end

    def create
        user = user.find_by_email(params[:email])
        if user && user.authenticate(params[:password])
            session[:user_id] = user.id
            redirect_to root_url, :notice => "Logged in!"
        else
            flash.now.alert = "Invalid email or password"
            render "new"
        end
    end

    def destroy
        session[:user_id] = nil
        redirect_to root_url, :notice => "Logged Out!"
    end

end
Run Code Online (Sandbox Code Playgroud)

但我真的不确定如何定义find_by_email.

人们可以提供给我的任何建议真的非常感谢

luc*_*tte 7

user.find_by_email(params[:email])
Run Code Online (Sandbox Code Playgroud)

应该

User.find_by_email(params[:email])
Run Code Online (Sandbox Code Playgroud)

  • 这是一个经典的WAT情况:https://www.destroyallsoftware.com/talks/wat;) (4认同)