title: NoMethodError:undefined method `id' for nil:NilClass
body: <p>I'm new to Rspec and I am trying to do the TDD. In the Application Controller, I have a method called set current user.</p>
  
  <pre><code>class ApplicationController &lt; ActionController::Base
     protect_from_forgery with: :exception
     protected  
      def set_current_user
        @current_user ||= User.find_by_session_token(cookies[:session_token]) 
        redirect_to login_path unless @current_user
      end
    end
  </code></pre>
  
  <p>and here is the BlogsController.rb</p>
  
  <pre><code>class BlogsController &lt; ApplicationController
    before_action :set_current_user
    before_action :has_user_and_hobby
    def blog_params
      params.require(:blog).permit(:title, :hobby_id, :user_id, :body, :rating)
    end
  
   ...
  
    def destroy
      @blog = Blog.find(params[:id])
      if @blog.user_id != @current_user.id
        flash[:notice] = "The blog #{@blog.title} only can be deleted by the author! It cannot be deleted by others."
        redirect_to hobby_blogs_path(@blog)
      else
        @blog.destroy
        flash[:notice] = "Blog '#{@blog.title}' deleted."
        redirect_back(fallback_location: root_path)
      end
    end
  end
  </code></pre>
  
  <p>And the rspec I wrote to test the destroy route is:</p>
  
  <pre><code>require 'spec_helper'
  require 'rails_helper'
  
  describe BlogsController do
      let(:fuser) { FactoryGirl.create(:fuser) }
      let(:hobby) { FactoryGirl.create(:hobby)}
      let(:blog) { FactoryGirl.create(:blog, hobby_id: hobby.id, user_id: fuser.id)}
      let(:comment) { FactoryGirl.create(:comment)}
  
  ...
  
      describe 'delete a blog' do
        before :each do
            allow_any_instance_of(ApplicationController).to receive(:set_current_user).and_return(fuser)
            allow_any_instance_of(BlogsController).to receive(:has_user_and_hobby).and_return(blog.user_id,hobby)
            allow(User).to receive(:find).with(blog.user_id).and_return(blog.user_id)
  
        it 'should redirect_back' do
            delete :destroy, params:{:hobby_id =&gt;hobby.id, :id =&gt; blog.id}
            expect(response).to be_redirect
        end
     end
  end
  </code></pre>
  
  <p>When I try to run the spec, I get the error:</p>
  
  <pre><code>Failure/Error: if @blog.user_id != @current_user.id
   NoMethodError:
     undefined method `id' for nil:NilClass
  </code></pre>
  
  <p>Does anyone know how to assist me in this? Greatly appreciate all the help.</p>