CWitty
CWitty

Reputation: 4536

Clearance undefined method sign_in for nil:NilClass

I am using Clearance for authentication and I am trying to create a user and sign them in, should be simple. For some reason the user saves just fine but when I call sign_in @user it says `undefined method 'sign_in' for nil:NilClass. My code is below.

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

Upvotes: 0

Views: 335

Answers (1)

CWitty
CWitty

Reputation: 4536

It turns out that I was using this with RSpec and was required to add require clearance/rspec to my spec_helper

Upvotes: 4

Related Questions