清除未定义的方法sign_in for nil:NilClass

时间:2014-08-21 15:00:19

标签: ruby-on-rails clearance

我正在使用Clearance进行身份验证,我正在尝试创建用户并对其进行签名,应该很简单。出于某种原因,user保存得很好但是当我调用sign_in @user时,它为nil:NilClass表示`undefined method'sign_in'。我的代码如下。

def create
    @user = user_from_params

    respond_to do |format|
      if @user.save
        sign_in @user
        redirect_to new_company_path
      else
        format.html { render :new }
      end
    end
  end

  private

  def user_from_params
    email = user_params.delete(:email)
    password = user_params.delete(:password)

    User.new(user_params).tap do |user|
      user.email = email
      user.password = password
      user.admin = true
    end
  end

  def user_params
    params.require(:user).permit(:first_name, :last_name, :email, :password)
  end

1 个答案:

答案 0 :(得分:4)

事实证明我在 RSpec 中使用此功能,并且需要将require clearance/rspec添加到我的spec_helper