を扱う:のActiveRecord ::応答のようなRecordNotFoundが、私はこのようなコード例を持って
def update
if @transaction.update(transaction_params)
render :show, status: :ok
else
render json: @transaction.errors, status: :unprocessable_entity
end
end
そして、私は存在しないレコードを更新しようとするとは、言い換えればコントローラにはActiveRecord :: RecordNotFoundを発生させます。
:私はこの例外は、独自の応答ハンドラまたは何かを持っているとして、救出し、何をレンダリングする必要はありません、これは郵便配達のスクリーンショット、上記の方法に無効なIDを提供したときに、私は反応して得るものですここは、テキストバージョンである:私は私自身のコントローラクラスを追加し、私がモデルからそれを上げるとき、私は特にコントローラで、それを救出しない場合
{
"status": 404,
"error": "Not Found",
"exception": "#<ActiveRecord::RecordNotFound: Couldn't find Transaction with 'id'=88 [WHERE \"transactions\".\"active\" = ?]>",
"traces": {
"Application Trace": [
{
"id": 6,
"trace": "app/controllers/api/v1/transactions_controller.rb:42:in `set_transaction'"
}
],
"Framework Trace": [
{
"id": 0,
"trace": "vendor/bundle/gems/activerecord-5.1.4/lib/active_record/relation/finder_methods.rb:343:in `raise_record_not_found_exception!'"
},
{
はしかし、私は500を取得します。
これはActiveRecord :: RecordNotFoundの仕組みですか?カスタムエラーにレスポンスハンドラを追加するにはどうすればよいですか?