title: Rails 4 AbstractController::Metal rendering with status != 200 (i.e. 401, 404)
body: <p>I'm implementing a simple API in my application to communicate with an Android application. I'm trying to use AbstractController::Metal mainly for performance. The problem I'm having is that render is ignoring the status option that I'm passing.</p>
  
  <p>Very simple example:</p>
  
  <pre><code>class Api::V1::ApiController &lt; ActionController::Metal
    include AbstractController::Rendering
    include ActionController::Renderers::All
    include ActionController::RackDelegation
    include ActionController::MimeResponds
  end
  
  class Api::V1::SessionsController &lt; Api::V1::ApiController
    def show
      render status: :unauthorized   # using 401 yields the same result
    end
  end
  </code></pre>
  
  <p>Calling </p>
  
  <pre><code>curl -v -X GET http://app.dev:3000/api/v1/sessions.json
  </code></pre>
  
  <p>I'd expect to receive a 401 but instead I get a 200 OK:</p>
  
  <pre><code>&gt; GET /api/v1/sessions.json HTTP/1.1
  &gt; User-Agent: curl/7.30.0
  &gt; Host: app.dev:3000
  &gt; Accept: */*
  &gt; 
  &lt; HTTP/1.1 200 OK
  </code></pre>
  
  <p>Any ideas? Overwriting response.status is the only work around I've found so far, but honestly it looks like an ugly hack.</p>
  
  <p>Thank you in advance for your insights. </p>