我正在尝试为我的 rails 应用程序设置一个简单的身份验证。我有一个 security_users 脚手架并创建了一些用户。
当我尝试使用其中一些帐户登录时,它表明“find_by_*”方法无法检测到当前帐户。
这就是我的会话控制器的样子(为了调试问题,我已经注释了密码检查):
class SessionsController < ApplicationController
def new
end
def create
@security_user = SecurityUser.find_by_email(params[:email])
if @security_user #&& @security_user.authenticate(params[:password])
session[:security_user_id] = @security_user.id
redirect_to root_url, notice: "Logged in!"
else
flash.now.alert = "Email or password is invalid"
render 'new'
end
end
def destroy
session[:user_id] = nil
redirect_to root_url, notice: "Logged out!"
end
end
因此,当我尝试创建会话(登录)时,我被重定向到会话“新”模板。这是调试信息:
这似乎没问题。为什么以下语句找不到记录:
SecurityUser.find_by_email(params[:email])
编辑:
当我在控制台中输入上面的行时,它正在返回记录: