Les lignes doivent répondre avec les codes d'erreur HTTP appropriés en corrélation avec les conventions du protocole HTTP. J'ai travaillé avec Rails pendant un moment et je n'ai vu aucune exception. Vous pouvez également augmenter vos propres exceptions comme cette
@record = ModelName.find_by(field_name_goes_here: params[:some_parameter_name_goes_here])
if not @record.blank?
render "view_file_name_goes_here"
else
raise ActiveRecord::RecordNotFound
end
Ce code entraînera des rails pour répondre avec une 404. Faire une demande d'une route qui n'a pas été définie se traduira également par une 404.
d'autres exemples:
une erreur de syntaxe dans votre code répondra avec un 500.
Si vous utilisez concevoir ou d'un autre petit bijou d'autorisation, une demande non autorisée entraînera un rendu 401. Il n'y aura pas anyt Hing dans Rails qui rendrait un 401 hors de la boîte. Rappelez-vous que toutes vos demandes sont définies via routes.rb et que c'est à vos contrôleurs de décider quelle réponse afficher et si cette réponse doit renvoyer un code d'erreur HTTP.
Cette question ici fournit des informations sur la façon de rendre tous les types de codes d'erreur:
Return a specific http status code in Rails
Si vous cherchez à déboguer le code d'erreur HTTP je suggère de définir la configuration de l'environnement de rails pour examiner toutes les demandes comme demandes locales. Cela affichera une erreur compréhensible.
Purpose of "consider_all_requests_local" in config/environments/development.rb?
On appelle la gestion des exceptions, il y a quelques threads qui traitent avec elle: http://blog.siami.fr/diving-in-rails-exceptions-handling ou celui-ci https://medium.com/rails-ember-beyond/error-handling-in-rails-the-modular-way-9afcddd2fe1b Je ne suis pas vraiment versé dans le sujet, donc je ne peux pas vraiment en recommander un mais si vous en lisez quelques-uns, vous aurez un bon aperçu – Maxence