在会话控制器中,我试图用.where(email:params [:email])替换“.find_by_email(params [:email])”,并验证Rails内置has_secure_password密码。虽然以前的作品,后者导致捕获的异常:无法使用.where查询替换动态查找程序
undefined method `authenticate' for #<ActiveRecord::Relation:0x0000010384e690>
这是控制器的完整代码不起作用:
类SessionsController < ApplicationController的 高清新 结束
def create
user = User.where(email: params[:email])
if user && user.authenticate(params[:password])
session[:user_id] = user.id
redirect_to texts_path, notice: "Logged in!"
else
render "new"
end
end
end