module ActionController::Responders
Direct including types
Defined in:
action-controller/responders.crConstant Summary
-
MIME_TYPES =
{binary: "application/octet-stream", json: "application/json", xml: "application/xml", text: "text/plain", html: "text/html", yaml: "text/yaml"}
-
common response mime types
-
REDIRECTION_CODES =
{multiple_choices: 300, moved_permanently: 301, found: 302, see_other: 303, not_modified: 304, use_proxy: 305, temporary_redirect: 307, permanent_redirect: 308}
-
codes to use when redirecting
-
STATUS_CODES =
{continue: 100, switching_protocols: 101, processing: 102, ok: 200, created: 201, accepted: 202, non_authoritative_information: 203, no_content: 204, reset_content: 205, partial_content: 206, multi_status: 207, already_reported: 208, im_used: 226, bad_request: 400, unauthorized: 401, payment_required: 402, forbidden: 403, not_found: 404, method_not_allowed: 405, not_acceptable: 406, proxy_authentication_required: 407, request_timeout: 408, conflict: 409, gone: 410, length_required: 411, precondition_failed: 412, payload_too_large: 413, uri_too_long: 414, unsupported_media_type: 415, range_not_satisfiable: 416, expectation_failed: 417, misdirected_request: 421, unprocessable_entity: 422, locked: 423, failed_dependency: 424, upgrade_required: 426, precondition_required: 428, too_many_requests: 429, request_header_fields_too_large: 431, unavailable_for_legal_reasons: 451, internal_server_error: 500, not_implemented: 501, bad_gateway: 502, service_unavailable: 503, gateway_timeout: 504, http_version_not_supported: 505, variant_also_negotiates: 506, insufficient_storage: 507, loop_detected: 508, not_extended: 510, network_authentication_required: 511}
-
standard response codes
Instance Method Summary
-
#accepts_formats : Array(String)
Extracts the mime types from the Accept header
Macro Summary
-
head(status)
only sends the header, no content to be sent.
-
redirect_to(path, status = :found)
redirects the browser to a new route
-
render(status = :ok, head = nil, json = nil, yaml = nil, xml = nil, html = nil, text = nil, binary = nil, template = nil, partial = nil, layout = nil)
used to stream a response back to the user, serializing directly to the IO
-
respond_with(status = :ok, &block)
uses the content-type header to respond in the appropriate format
Instance Method Detail
Macro Detail
only sends the header, no content to be sent.
you should only use render with the Macro DSL
delete "/:id", :destroy do
MyModel.find(route_params["id"]).destroy
head HTTP::Status::ACCEPTED
end
redirects the browser to a new route
you should only use render with the Macro DSL
patch "/:id", :update do
redirect_to "/#{params["id"]}"
end
used to stream a response back to the user, serializing directly to the IO
the content type is set appropriately based on the response type
a call to render implicitly executes a return
as the response has been written to the client
you should only use render with the Macro DSL
get "/:id", :show do
render json: MyModel.find(route_params["id"])
end
uses the content-type header to respond in the appropriate format
you should only use render with the Macro DSL
get "/:id", :show do
model = MyModel.find(route_params["id"])
respond_with do
text model # calls to_s(response) on the object passed
json model # calls to_json(response) on the object passed
xml do # can provide a block to perform additional processing too
str = "<set_var>#{model.build_xml}</set_var>"
XML.parse(str)
end
end
end