2017-02-14 13 views
3

私のプロジェクトでjson api resource gemを使用しています。Json Apiリソース|オブジェクトの配列の応答

私は、セットアップの簡単なリソース私のコントローラで

module V1 
    class ExpectedPaymentResource < JSONAPI::Resource 
    attributes :registration_id, :invoiced_amount_due, :date_due, :status, :created_at, :updated_at 
    end 
end 

を持っている私は、サービス

expected_payments = CreateExpectedPayments.new(registration_params).call 

からExpectedPaymentsオブジェクトの配列を取得し、私は今のJSON API形式でexpected_paymentsを返却する必要があります。

render json: JSONAPI::ResourceSerializer.new(ExpectedPaymentResource).serialize_to_hash(ExpectedPaymentResource.new(expected_payments[0], nil)) 

そして、それが働いた:だから私が理解から、私はこの

render json: JSONAPI::ResourceSerializer.new(ExpectedPaymentResource).serialize_to_hash(ExpectedPaymentResource.new(expected_payments, nil)) 

を行うと、私は<NoMethodError: undefined method 'id' for <Array:0x005642734fa6f8>>

を取得し、私が試したserializer

を使用する必要があります配列内の最初のオブジェクト。

ResourceSerializerには、リソースインスタンスまたはリソースインスタンスの配列をシリアライズするのに、serialize_to_hashメソッドが含まれています」と記載されています。

リソースインスタンスの配列を処理するにはどうすればよいですか?私はドキュメンテーションの例を見ることができません。

答えて

1

Railsを使用している場合。 active_model_serializerを試してください。これは、JSONの世代に設定に関する規則をもたらします。

https://github.com/rails-api/active_model_serializers

ヨンあなたはAMSを使用して起動したら、あなたはJSONレスポンスを生成する方法wronging停止することができます。以下は

https://github.com/rails-api/active_model_serializers/blob/master/docs/general/getting_started.md

+0

、AMSのために取得・スタート・ガイドで、このリンクは質問に答えるかもしれないが、ここでは答えの重要な部分が含まれており、参考のためにリンクを提供することをお勧めします。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューの投稿](/レビュー/低品質の投稿/ 18870835) – grizzthedj