title: expecting <"edit"> but rendering with <[]>
body: <p>Hi everyone I'm testing my app controllers and I have a problem. I have tests for update action which fails:</p>
  
  <pre><code>describe "PUT #update" do 
      before :each do 
        @car_service = create(:car_service)
      end
  
      it "locates the requested @message" do 
        put :update, id: @car_service, car_addition: attributes_for(:car_service)
        assigns(:car_addition).should eq(@car_service)
      end
  
      context "valid attributes" do 
        it "changes @car_service's attributes" do 
          put :update, id: @car_service, car_addition: attributes_for(:car_service, name: "Test")
          @car_service.reload
          @car_service.name.should eq("Test")
        end
  
        it "redirects to the updated message" do 
          put :update, id: @car_service, car_addition: attributes_for(:car_service)
          should redirect_to admin_car_additions_url
        end
      end
  
      context "invalid attributes" do 
        it "does not change @car_addition's attributes" do 
          put :update, id: @car_service, car_addition: attributes_for(:car_service, name: nil)
          @car_service.reload
          @car_service.name.should_not be_nil
        end
  
        it "re-renders the edit method" do 
          put :update, id: @car_service, car_addition: attributes_for(:car_addition)
  
          should render_template :edit
  
        end
      end
    end
  </code></pre>
  
  <p>when i run this tests only one test not pass("re-renders the edit method") and throw out following error: </p>
  
  <pre><code>Failure/Error: should render_template('edit')
         expecting &lt;"edit"&gt; but rendering with &lt;[]&gt;
       # ./spec/controllers/admin/car_additions_controller_spec.rb:100:in `block (4 levels) in &lt;top (required)&gt;
  </code></pre>
  
  <p>My controller looks like this:</p>
  
  <pre><code>module Admin
    class CarAdditionsController &lt; ApplicationController
      include Admin::BaseController
  
      load_and_authorize_resource
  
      add_breadcrumb I18n.t('car_additions.car_addition.home'), :admin_root_path
      add_breadcrumb I18n.t('car_additions.car_additions'), :admin_car_additions_path
  
      def index
      end
  
      def new
        add_breadcrumb t('car_additions.car_addition.new')
      end
  
      def edit
        add_breadcrumb t('car_additions.car_addition.edit')
      end
  
      def create
        if @car_addition.save
          flash[:notice] = t("car_additions.created")
          redirect_to action: :index
        else
          add_breadcrumb t('car_additions.car_addition.new')
          render :new
        end
      end
  
      def update
        if @car_addition.update(car_addition_params)
          flash[:notice] = t("car_additions.updated")
          redirect_to action: :index
        else
          render :edit
        end
      end
  
      def destroy
        @car_additon.destroy
        flash[:error] = t("car_additions.destroy")
        redirect_to action: :index
      end
  
      private
      def car_addition_params
        params.require(:car_addition).permit(:name, :type, :image,
          :image_cache, :remove_image)
      end
    end
  end
  </code></pre>
  
  <p>I'm using devise and CanCan for authorization. Please help.</p>
  
  <hr>
  
  <p>I'm pass <code>attributes_for(:car_addition)</code> because this is not valid attributes. When I changed this to:
   <code>attributes_for(:car_addition, name: nil)</code> it's still not working...</p>