Lorsque l'on utilise la fonction render
ou head
dans un controller avec Ruby on Rails et que l'on souhaite modifier le code HTTP renvoyé, on à deux possibilités.
1. Utiliser le code en chiffre
head 400
render :index, status: 400
Ce n'est pas très pratiques car si l'on ne connait pas par coeur les codes HTTP (comme moi par exemple), on se retrouve vite à devoir lire la documentation à chaque code review !
2. Utiliser les symboles de rails
head :bad_request
render :index, status: :bad_request
Déjà, c'est beaucoup plus clair ! N'importe qui maintenant sait que nous renvoyons le code lié à une Bad Request
.
Liste des correspondances
Code HTTP | Symbole |
---|---|
1xx Family (Information) | |
100 | :continue |
101 | :switching_protocols |
102 | :processing |
2xx Family (Succès) | |
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 Family (Redirection) | |
300 | :multiple_choices |
301 | :moved_permanently |
302 | :found |
303 | :see_other |
304 | :not_modified |
305 | :use_proxy |
307 | :temporary_redirect |
4xx Family (Erreur Client) | |
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 | :payload_too_large |
414 | :uri_too_long |
415 | :unsupported_media_type |
416 | :range_not_satisfiable |
417 | :expectation_failed |
422 | :unprocessable_entity |
423 | :locked |
424 | :failed_dependency |
426 | :upgrade_required |
5xx Family (Erreur Serveur) | |
400 | :internal_server_error |
401 | :not_implemented |
402 | :bad_gateway |
403 | :service_unavailable |
404 | :gateway_timeout |
405 | :http_version_not_supported |
407 | :insufficient_storage |
410 | :not_extended |
Vous ne comprenez rien à tous ces codes ? C'est peut-être le moment de faire un tour sur nos cours ou de nous contacter pour faire votre site web !
N'hésitez pas à consulter nos autres guides !