我是Ruby新手。我正在使用Rails 4编写Restful API应用程序。 如果找不到记录,如何返回404 JSON not found字符串?
我发现了一些帖子,但没有运气,仅适用于Rails 3。
在我的控制器中,我可以发现异常
def show
country = Country.find(params[:id])
render :json => country.to_record
rescue Exception
render :json => "404"
end
但我想要一个通用的捕获所有未找到的资源。
答案 0 :(得分:15)
使用rescue_from
。见http://guides.rubyonrails.org/v2.3.11/action_controller_overview.html#rescue
在这种情况下使用类似的东西:
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
答案 1 :(得分:-1)
执行:
def show
country = Country.find(params[:id])
render :json => country.to_record
rescue Exception
render :json => 404_json_text, :status => 404
end