Я создаю json api, используя Rails и RABL.Использование RABL для обработки ошибок в Rails json
Есть ли способ показать сообщения об ошибках с помощью RABL?
Идея, например, чтобы показать сообщение об ошибке, как JSON, когда он не может найти объект вместо стандартного шаблона, например, он показывает сообщение:
{"errors":"Foo that you were looking for could not be found."}
Например, я пытаясь показать сообщение об ошибке в API, используя следующий код:
class Api::V1::FooController < ApplicationController
respond_to :json
before_filter :find_foo, :only =>[:show]
def find_foo
@foo = Foo.find(params[:id])
rescue ActiveRecord::RecordNotFound
@errors = { :errors => "Foo that you were looking for could not be found."}
respond_with(errors.to_json, :status => 404)
end
def show
respond_with(@foo)
end
end
И в моем шаблоне показать RABL:
object @foo
attributes :id, :name
node :errors do |o|
o.errors
end
Делая это, я получаю сообщение об ошибке для шаблона RABL вместо правой JSON:
undefined method `errors' for nil:NilClass