Below are the available Ruby on Rails symbols that correspond with HTTP statuses. These are used in controllers to let the client know how the their request performed.
Common Examples
200 JSON response
render json: { message: 'This request succeeded, sweet.' }, status: :ok
401 JSON response
render json: { message: 'Sorry, you can\'t do that.' }, status: :unauthorized
500 JSON response
render json: { message: 'Whoops. Something back here is all sorts of broken.' }, status: :internal_server_error
Below is the complete list of statuses. If there are any missing or have changed since Rails v5 please let me know
1xx Statuses
100 | :continue |
101 | :switching_protocols |
102 | :processing |
2xx Statuses
200 | :ok | |
201 | :created | |
202 | :accepted | |
203 | :non_authoritative_information | |
204 | :no_content | |
205 | :reset_content | |
206 | :partial_content | |
207 | :multi_status | |
226 | :im_used |
3xx Statuses
300 | :multiple_choices |
301 | :moved_permanently |
302 | :found |
303 | :see_other |
304 | :not_modified |
305 | :use_proxy |
307 | :temporary_redirect |
4xx Statuses
4xx | Client Error |
400 | :bad_request |
401 | :unauthorized |
402 | :payment_required |
403 | :forbidden |
404 | :not_found |
405 | :method_not_allowed |
406 | :not_acceptable |
407 | :proxy_authentication_required |
408 | :request_timeout |
409 | :conflict |
410 | :gone |
411 | :length_required |
412 | :precondition_failed |
413 | :request_entity_too_large |
414 | :request_uri_too_long |
415 | :unsupported_media_type |
416 | :requested_range_not_satisfiable |
417 | :expectation_failed |
422 | :unprocessable_entity |
423 | :locked |
424 | :failed_dependency |
426 | :upgrade_required |
5xx
500 | :internal_server_error |
501 | :not_implemented |
502 | :bad_gateway |
503 | :service_unavailable |
504 | :gateway_timeout |
505 | :http_version_not_supported |
507 | :insufficient_storage |
510 | :not_extended |