【发布时间】:2013-12-17 03:23:00
【问题描述】:
现在我正在尝试对用户进行身份验证。这个过程有效。现在,用户的登录名具有字段用户名和密码。如果用户输入正确的信息,它就会起作用。如果用户输入了有效的用户名和错误的密码,它就可以工作。如果用户输入了无效的用户名,它就不起作用。这是我在会话控制器中的创建操作:
def create
user = User.find_by_username(params[:username])
redirect_to root_url if user == nil
if user.password == params[:password]
session[:user_id] = user.id
redirect_to user_path(user.id), notice: "Logged in!"
else
flash.now.alert = "not logged in"
redirect_to root_url
end
end
我得到的错误是用户没有方法密码。我知道这一点并加入行
redirect_to root_url if user == nil
我也有这条线
redirect_to root_url unless user.password
这两个都不起作用,也没有重定向回根 url。
【问题讨论】:
-
表单是登录表单。正在管理员中创建用户。我只是想验证它是否是用户。问题是如果在创建操作中的 User 类用户中找不到用户名,则该用户名将变为 nil。考虑到这一点,我试图说如果用户是 nil 然后回到根 url。那部分不起作用。
-
if user && user.password == params[:password]????
标签: ruby-on-rails session authentication