Ich habe ein Codebeispiel wie folgt aus:Active :: RecordNotFound wie Response-Handling
def update
if @transaction.update(transaction_params)
render :show, status: :ok
else
render json: @transaction.errors, status: :unprocessable_entity
end
end
Und wenn ich versuche Datensatz zu aktualisieren, die mit anderen Worten nicht existiert, Controller hebt Active :: RecordNotFound. Ich brauche nicht zu retten und alles zu machen, da diese Ausnahme seiner eigenen Antwort-Handler oder etwas hat, das ist, was ich in der Antwort zu erhalten, wenn sie über das Verfahren ungültig ID versehen, Postbote Screenshot:
Hierist Textversion:
{
"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!'"
},
{
Allerdings, wenn ich meine eigene Controller-Klasse hinzufügen, und ich hebe sie aus dem Modell, I 500, wenn ich nicht speziell sie retten kann, in der Steuerung.
Wie erfolgt dies für ActiveRecord :: RecordNotFound? Wie kann ich meinem benutzerdefinierten Fehler einen Antworthandler hinzufügen?