2012-03-06 17 views
2

これは約2時間作業していますが、非常に簡単な解決策があると確信していますが、残念なことに私はそれを見つけることができません。未定義のメソッド 'find_by_email'エラー

私はRyan Bates Autheticationレッスン#270に続いて、基本的なサインアップとログインシステムをセットアップしました。

ログインしようとしても同じエラーが発生します。

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を定義する方法は本当にわからない午前:

undefined method `find_by_email' for nil:NilClass 

は、私は私のセッションコントローラは、以下のように設定しています。

何かアドバイスの人々は、この本当に多く

答えて

7
user.find_by_email(params[:email]) 

User.find_by_email(params[:email]) 
+0

これは 'user'は未定義とエラーがスローされますそれらの狂気のものの一つであるべきであるいただければ幸いで私を提供することができますしかし、それが割り当てで定義されているという事実のために、古典的な 'a = a'の状況です。 – tadman

+4

古典的なWATの状況:https://www.destroyallsoftware.com/talks/wat;) – lucapette

+0

Lucapette - このため、これは即座に機能し、私が必要としていたものでした! :) –

関連する問題