Rails と RABL を使用して json API を作成しています。
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
これを行うと、適切な json ではなく、RABL テンプレートのエラー メッセージが表示されます。
undefined method `errors' for nil:NilClass