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
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 Summary
-
#accepts_formats : Array(String)
Extracts the mime types from the Accept header
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