Action Dispatch Response

Represents an HTTP response generated by a controller action. Use it to retrieve the current state of the response, or customize the response. It can either represent a real HTTP response (i.e. one that is meant to be sent back to the web browser) or a TestResponse (i.e. one that is generated from integration tests).

The Response object for the current request is exposed on controllers as ActionController::Metal#response. ActionController::Metal also provides a few additional methods that delegate to attributes of the Response such as ActionController::Metal#headers.

Integration tests will likely also want to inspect responses in more detail. Methods such as Integration::RequestHelpers#get and Integration::RequestHelpers#post return instances of TestResponse (which inherits from Response) for this purpose.

For example, the following demo integration test prints the body of the controller response to the console:

class DemoControllerTest < ActionDispatch::IntegrationTest
  def test_print_root_path_to_console
    get('/')
    puts response.body
  end
end

Constants

CONTENT_TYPE_PARSER = / \A (?[^;\s]+\s*(?:;\s*(?:(?!charset)[^;\s])+)*)? (?:;\s*charset=(?"?)(?[^;\s]+)\k)? /x

NullContentTypeHeader = ContentTypeHeader.new nil, nil

ContentTypeHeader = Struct.new :mime_type, :charset

NO_CONTENT_CODES = [100, 101, 102, 103, 204, 205, 304]

SET_COOKIE = "Set-Cookie"

CONTENT_TYPE = "Content-Type"

Header = Headers

Headers = ::Rack::Headers

Attributes

[R] stream

The underlying body, as a streamable object.

[R] header

The headers for the response.

header["Content-Type"] # => "text/plain"
header["Content-Type"] = "application/json"
header["Content-Type"] # => "application/json"

Also aliased as headers.

headers["Content-Type"] # => "text/plain"
headers["Content-Type"] = "application/json"
headers["Content-Type"] # => "application/json"

Also aliased as header for compatibility.

[R] headers

The headers for the response.

header["Content-Type"] # => "text/plain"
header["Content-Type"] = "application/json"
header["Content-Type"] # => "application/json"

Also aliased as headers.

headers["Content-Type"] # => "text/plain"
headers["Content-Type"] = "application/json"
headers["Content-Type"] # => "application/json"

Also aliased as header for compatibility.

[R] status

The HTTP status code.

[RW] request

The request that the response is responding to.

Show files where this class is defined (1 file)
Register or log in to add new notes.