【发布时间】:2011-09-22 19:37:44
【问题描述】:
我正在参加轨道广播,只是在练习一些轨道,并且遇到了一些我想要理解的东西。
我没有得到身份验证方法上的“自我”在做什么。所以我删除了它并测试了我的应用程序的登录,看看它是否会显示错误并且确实如此:
error:
**NoMethodError in SessionsController#create
undefined method `authenticate' for #<Class:0x00000102cb9000**>
如果有人能准确解释“自我”在做什么,我将不胜感激。我试图弄清楚到底发生了什么,但无法理解。
方法在模型中定义并在会话控制器中调用。 我一直在不断地删除我的应用程序并从头开始以掌握它的窍门,每次我重新开始时,很多事情对我来说都是有意义的,但我被困在“自我”上。
我只是那种喜欢理解为什么会起作用的人。
控制器:
def create
user = User.authenticate(params[:email], params[:password])
if user
session[:user_id] = user.id
redirect_to root_path, :notice => "Logged In"
else
flash.now.alert = "Invalid credentials"
render "new"
end
end
型号:
def self.authenticate(email, password)
user = find_by_email(email)
if user && user.password_hash == BCrypt::Engine.hash_secret(password, user.password_salt)
user
else
nil
end
end
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 rubygems ruby-on-rails-3.1