2017-02-14 9 views
3

내 프로젝트에서 json api resource gem을 사용하고 있습니다.Json Api 리소스 | 객체 배열을 사용한 응답

은 내가 서비스 나는 이제 JSON API를 형식으로 expected_payments을 반환해야

expected_payments = CreateExpectedPayments.new(registration_params).call 

에서 ExpectedPayments 객체의 배열을 얻을 설정하는 간단한 자원 내 컨트롤러에서

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

있습니다.

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

를 사용한다 배열의 첫 번째 객체입니다.

에는 메서드가 있습니다.이 메서드는 리소스 인스턴스 또는 리소스 인스턴스 배열을 serialize합니다. "

자원 인스턴스 배열을 사용하려면 어떻게해야합니까? 설명서에 예제가 없습니다.

답변

1

레일을 사용하는 경우. 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의 점점 시작 가이드입니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. - [From Review] (리뷰/저품절 게시물/18870835) – grizzthedj