我正在使用“用户”和“管理员”模式正在使用的password_reset表单。我知道你只能通过params.require函数传递一件事。它一直运行到更新功能,因为我已将'user_params'设置为以下内容:
def user_params
params.require(:user).permit(:password, :password_confirmation)
end
通过以下代码更新来调用:
def update
@user = User.find_by_password_reset_token(params[:id]) || Admin.find_by_password_reset_token(params[:id])
if @user.password_reset_sent_at < 2.hours.ago
redirect_to new_password_reset_path, :alert => "The Password reset has expired."
elsif @user.update_attributes(params[:user])
redirect_to root_url, :notice => "Your Password has been reset! You can now login."
else
render :edit
end
end
我尝试了各种方法,但无法获取更新以检查管理员用户。在密码重置控制器中,通过检查用户是否存在或管理员是否来设置@user。示例如下。
user = User.find_by_email(params[:email]) || Admin.find_by_email(params[:email])
最好的方法是什么?