-1
我正在写登录/注销一个简单的应用程序,我有一个错误:NoMethodError,未定义的方法登录
NoMethodError in WelcomeController#create
undefined method `login' for #<User:0x3dc02c0>
这是我的usermodel
def self.authenticate(pass)
user = find_by_pass(pass)
if user.nil?
return nil
else
return user
end
end
这是我的控制器
def create
user = User.find_by_username(params[:session][:username])
if user && user.authenticate(params[:session][:pass])
login user
redirect_to root_url
else
render 'index'
end
end
这是我的好帮手
def login(user)
session[:user_id] = user.id
end
这是我的应用程序控制器
protect_from_forgery with: :exception
include WelcomeHelper
请帮我解决这个问题:)
它似乎真的搞砸了。它不直接工作,因为'login'被定义为'User'类方法,并且您尝试将它用作实例方法。但是这段代码有其他严重的问题。首先,你似乎不以任何方式加密密码,这是安全问题。 – 2014-10-27 08:50:39
问题是登录是辅助方法。 Helper方法在控制器中不可用。尽管代码存在其他问题,但将登录方法移至application_controller将解决此特定问题。 – jvnill 2014-10-27 09:01:25