1

모델의 연관을 연결된 모델의 ID 배열 (int)로 직렬화하려고합니다. 내가 현재 사용하고 이 : 같은 serializable_hash에서 옵션을 포함 :연관 배열을 ID 배열로

:include => {:associated => {:only => [:id]} 

느릅 나무 출력 ​​JSON과 같은 :

{"id":13, ...,"associated":[{"id":15,"associated":[]},{"id":14,"associated":[]}]} 
관련에 해당하는 객체가 키 "관련"왜

알고하지 마십시오; 그러나 그것은별로 중요하지 않습니다. 내가 원하는 것은 다음과 같은 결과물을 얻는 것입니다 :

{"id":13, "associated":[15,14]} 

어떻게해야합니까? 당신은 단지 associated 모델 ID를해야하는 경우

답변

1

, 당신은 같은 상위 모델의 방법을 만드는 시도 할 수 다음 serializable_hash 또는 to_json 방법 그리고

class ParentModel < ActiveRecord::Base 
    # ... 

    def associated_ids 
    associated.pluck(:id) 
    end 
end 

, 내가 이런 짓을 했을까 :

parent_model_instance.includes(:associated).serializable_hash(methods: [:associated_ids]) 

다음을 생성 할 사용자 :

{ "id": 13, "associated_ids": [15,14] } 
1

serializer에서이 작업을 수행 할 수 있습니다.

class SomeSerializer < ActiveModel::Serializer 
    embed :ids 
    has_many :associateds 
end 
관련 문제