首页 > 解决方案 > Authlogic - 没有将 nil 隐式转换为 Integer

问题描述

我正在更新旧的 Rails (Ruby v 2.5.6 & Rails v 4.2.10) 应用程序,我遇到了一个奇怪的错误,当用户尝试登录时,如果密码不正确,我会得到

没有将 nil 隐式转换为 Integer

就行了

如果@user_session.save

所有代码都是 authlogic 的库存,所以我不明白为什么会这样

class UserSessionsController < BaseGUIController
  include CurrentCart

  def new
    @user_session = UserSession.new
  end

  def create
    @user_session = UserSession.new(user_session_params)
    if @user_session.save
      flash[:success] = "Welcome back!"
      redirect_to root_url
    else
      render :new
    end
  end

  private

  def user_session_params
    params.require(:user_session).permit(:email, :password, :remember_me)
  end
end

它应该将@user_session 返回为未保存并将用户重定向回登录以重试。如果密码正确,则没有问题。

我错过了一些非常明显的东西吗?

谢谢你。

标签: ruby-on-railsrubyauthlogic

解决方案


推荐阅读