RoRの新機能ですが、ActiveRecord :: RecordNotFoundをhttp 404エラーにマップできることはわかっています。 Ruby上に他のリソースがありますか? ResourceName :: ResourceNameNotFound?Ruby on Railsでリソースが見つかりません
また、RoRによって発生したエラーは、520,403,401に相当しますか?
ご協力いただければ幸いです。
RoRの新機能ですが、ActiveRecord :: RecordNotFoundをhttp 404エラーにマップできることはわかっています。 Ruby上に他のリソースがありますか? ResourceName :: ResourceNameNotFound?Ruby on Railsでリソースが見つかりません
また、RoRによって発生したエラーは、520,403,401に相当しますか?
ご協力いただければ幸いです。
Railsは、HTTPプロトコルの規約に関連して、適切なHTTPエラーコードで応答する必要があります。私はしばらくの間、Railsを使ってきましたが、例外はありませんでした。また、このコードは、レールも404
になります定義されていないルートを要求する404 で応答するようになります。この
@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
のように、独自の例外を発生させることができますその他の例:
あなたが考案または認可のための他のいくつかの宝石を使用している場合は500
で応答しますあなたのコードの構文エラーは、不正な要求が存在しないであろう401のレンダリングになりますどんな401をボックスの外にレンダリングするRailsのヒンジ。すべてのリクエストはroutes.rbで定義されていることを覚えておいてください。レンダリングするレスポンスとそのレスポンスがHTTPエラーコードを返すかどうかは、コントローラが決定します。
この質問ここでは、エラーコードのすべてのタイプをレンダリングする方法についての情報を提供しています。
Return a specific http status code in Rails
あなたはHTTPエラーコードをデバッグするために探しているなら、私はすべての要求を検討するために、レールの環境設定を設定することをお勧めローカル要求として。これはわかりやすいエラーを表示します。あなたはActiveRecord::RecordNotFound
言及し、各エラーのようなその意味を持っているようなあなたの特定の結果が不一致 いるときにエラーを発生させることができ、レールに
Purpose of "consider_all_requests_local" in config/environments/development.rb?
詳細な説明をありがとう。しかし、私の質問は、エラーによってレールが500,403、および401で応答する原因になりました。あなたの答えで言いましたように、ActiveRecord :: RecordNotFoundは、レールが404で応答する原因になり、レールがエラーコードI言及しましたか? –
私は自分の答えを編集しました。私はこれが役立つことを願っています –
。
401 is for NOT_AUTHORIZED
403 is for FORBIDDEN
500 is for server error
とがある他の多くの
これは、例外処理と呼ばれる
、それに対処するいくつかのスレッドがあります。http://blog.siami.fr/diving-in-rails-exceptions-handlingまたはこの1つhttps://medium.com/rails-ember-beyond/error-handling-in-rails-the-modular-way-9afcddd2fe1b私は本当に件名に精通していないので、私は本当に1つを推奨することはできませんがifあなたは良い概観を持っているいくつかを読んで – Maxence