2011-08-14 15 views
1

私はlogin moduleのためのプロジェクトを見てきたが、私は、このヘルパーメソッドをやっている正確に何かわからない:「最初」のヘルパーメソッド

def self.authenticate(login, pass) 
    u = User.first(:login => login) 
    return nil if u.nil? 
    return u if User.encrypt(pass, u.salt) == u.hashed_password 
    nil 
end 

なぜ代わりに:

u = User.first(:login => login) 

...あなたのような何かを実行します。

u = self.login 

感謝を!

答えて

3

firstヘルパーメソッドを検索します指定された条件に一致したデータベースの最初のレコードこれは、次のSQL文と同じ意味です:。

SELECT * FROM Users WHERE login = 'foo' LIMIT 1 

コードu = User.first(:login => login)後には、以下のんがあれば 1.どうかを確認します指定されたログインで返されたユーザーです。 2.パスワードが一致する場合は、Userオブジェクトを返します。

0

ログイン名だけでなく、対応するユーザーオブジェクトを探しているからです。

1
u = User.first(:login => login) 

は「データベースに行き、そして私にそのログインとして渡されたユーザーIDと等しい最初のユーザーオブジェクトを見つける 『ログイン』パラメータを意味します。Uにこれを割り当てます。

関連する問題