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