Skip to content
Browse files

Tried to make the response status code table more readable

By making it the last thing in it's section and adding pseudo row headers
  • Loading branch information...
1 parent 3f52e5a commit 5495bac3548011c1c60b156e6306ed12a632047b @iainbeeston iainbeeston committed
Showing with 65 additions and 65 deletions.
  1. +65 −65 guides/source/layouts_and_rendering.md
View
130 guides/source/layouts_and_rendering.md
@@ -283,8 +283,8 @@ Calls to the `render` method generally accept four options:
* `:content_type`
* `:layout`
-* `:status`
* `:location`
+* `:status`
##### The `:content_type` Option
@@ -310,80 +310,80 @@ You can also tell Rails to render with no layout at all:
render layout: false
```
-##### The `:status` Option
+##### The `:location` Option
-Rails will automatically generate a response with the correct HTTP status code (in most cases, this is `200 OK`). You can use the `:status` option to change this:
+You can use the `:location` option to set the HTTP `Location` header:
```ruby
-render status: 500
-render status: :forbidden
+render xml: photo, location: photo_url(photo)
```
-Rails understands both numeric status codes and the corresponding symbols shown below:
-
-| HTTP Status Code | Symbol |
-| ---------------- | -------------------------------- |
-| 100 | :continue |
-| 101 | :switching_protocols |
-| 102 | :processing |
-| 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 |
-| 300 | :multiple_choices |
-| 301 | :moved_permanently |
-| 302 | :found |
-| 303 | :see_other |
-| 304 | :not_modified |
-| 305 | :use_proxy |
-| 306 | :reserved |
-| 307 | :temporary_redirect |
-| 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 |
-| 418 | :i'm_a_teapot |
-| 422 | :unprocessable_entity |
-| 423 | :locked |
-| 424 | :failed_dependency |
-| 426 | :upgrade_required |
-| 500 | :internal_server_error |
-| 501 | :not_implemented |
-| 502 | :bad_gateway |
-| 503 | :service_unavailable |
-| 504 | :gateway_timeout |
-| 505 | :http_version_not_supported |
-| 506 | :variant_also_negotiates |
-| 507 | :insufficient_storage |
-| 510 | :not_extended |
-
-##### The `:location` Option
+##### The `:status` Option
-You can use the `:location` option to set the HTTP `Location` header:
+Rails will automatically generate a response with the correct HTTP status code (in most cases, this is `200 OK`). You can use the `:status` option to change this:
```ruby
-render xml: photo, location: photo_url(photo)
+render status: 500
+render status: :forbidden
```
+Rails understands both numeric status codes and the corresponding symbols shown below.
+
+| Response Class | HTTP Status Code | Symbol |
+| ------------------- | ---------------- | -------------------------------- |
+| **Informational** | 100 | :continue |
+| | 101 | :switching_protocols |
+| | 102 | :processing |
+| **Success** | 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 |
+| **Redirection** | 300 | :multiple_choices |
+| | 301 | :moved_permanently |
+| | 302 | :found |
+| | 303 | :see_other |
+| | 304 | :not_modified |
+| | 305 | :use_proxy |
+| | 306 | :reserved |
+| | 307 | :temporary_redirect |
+| **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 |
+| | 418 | :i'm_a_teapot |
+| | 422 | :unprocessable_entity |
+| | 423 | :locked |
+| | 424 | :failed_dependency |
+| | 426 | :upgrade_required |
+| **Server Error** | 500 | :internal_server_error |
+| | 501 | :not_implemented |
+| | 502 | :bad_gateway |
+| | 503 | :service_unavailable |
+| | 504 | :gateway_timeout |
+| | 505 | :http_version_not_supported |
+| | 506 | :variant_also_negotiates |
+| | 507 | :insufficient_storage |
+| | 510 | :not_extended |
+
#### Finding Layouts
To find the current layout, Rails first looks for a file in `app/views/layouts` with the same base name as the controller. For example, rendering actions from the `PhotosController` class will use `app/views/layouts/photos.html.erb` (or `app/views/layouts/photos.builder`). If there is no such controller-specific layout, Rails will use `app/views/layouts/application.html.erb` or `app/views/layouts/application.builder`. If there is no `.erb` layout, Rails will use a `.builder` layout if one exists. Rails also provides several ways to more precisely assign specific layouts to individual controllers and actions.

0 comments on commit 5495bac

Please sign in to comment.
Something went wrong with that request. Please try again.