Frage Wie kann ich ein 404 JSON-Format in Rails 4 zurückgeben?


Ich bin neu in Ruby. Ich schreibe eine Restful API-Anwendung mit Rails 4. Wie kann ich eine 404 JSON nicht gefundene Zeichenfolge zurückgeben, wenn der Datensatz nicht gefunden wird?

Ich habe eine Reihe von Posts gefunden, aber kein Glück, nur für Rails 3.

In meinem Controller kann ich die Ausnahme abfangen

  def show
    country = Country.find(params[:id])
    render :json => country.to_record
  rescue Exception
    render :json => "404"
  end

Aber ich möchte ein generisches, um alle nicht gefundenen Ressourcen zu erfassen.


5
2018-04-28 04:06


Ursprung


Antworten:


Benutzen rescue_from. Sehen http://guides.rubyonrails.org/v2.3.11/action_controller_overview.html#rescue

In diesem Fall verwende etwas wie:

class ApplicationController < ActionController::Base
  rescue_from ActiveRecord::RecordNotFound, :with => :record_not_found

  private
  def record_not_found(error)
    render json: { error: error.message }, status: :not_found
  end
end

13
2018-03-27 03:20



Machen:

def show
  country = Country.find(params[:id])
  render :json => country.to_record
rescue Exception
  render :json => 404_json_text, :status => 404
end

-1
2018-04-28 04:12