0
我在Rails中構建一個小應用程序,現在我正在嘗試對用戶進行身份驗證。活動記錄查詢問題
所以我就在控制類此方法:
def login
if @user = User.authenticate(params[:txt_login], params[:txt_password])
session[:current_user_id] = @user.id
redirect_to root_url
end
end
這裏是身份驗證方法的定義(User模型類中):
def self.authenticate(username, password)
@user = User.where(["username = ? AND password = ?", username, password])
return @user
end
的問題是,我得到一個錯誤消息說:
undefined method `id' for #<ActiveRecord::Relation:0x92dff10>
我確認用戶我試圖登錄真正的exis ts(除了它試圖獲取用戶的id,並且這個指令被包裝在一個if中,以防萬一從認證方法中返回0個用戶)。
爲什麼我會得到這個錯誤信息?知道當我改變User.where
User.find
它工作正常!
謝謝!
謝謝。對於密碼問題,我確定我只是搞亂了Rails,它不是一個生產代碼,但我可能會看看這些插件。 – 2010-10-30 23:05:40