Я создаю json API, используя Rails и RABL.
Есть ли способ показать пользовательские сообщения об ошибках с помощью 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
И в моем шаблоне Show RABL:
object @foo
attributes :id, :name
node :errors do |o|
o.errors
end
Делая это, я получаю сообщение об ошибке для шаблона RABL вместо правильного json:
undefined method `errors' for nil:NilClass