未定义的方法'find_by_email'错误

时间:2012-03-06 20:36:48

标签: ruby-on-rails ruby

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

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

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

undefined method `find_by_email' for nil:NilClass

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

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

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

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

1 个答案:

答案 0 :(得分:7)

user.find_by_email(params[:email])

应该是

User.find_by_email(params[:email])