1

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
4

1 に答える 1