2014-12-11 2 views
1

나는 가지고있다레일즈에 액티브 모델 시리얼 라이저 (Active Model Serializer)가 포함 된 다중 열을 어떻게 삽입 할 수 있습니까?

사용자 목록 모델 & UserListMovie. UserList has_many 영화를 ​​통해 : : user_list_movies.

원래 UserList의 serializer에서 user_list_movies_id 만 삽입해야했습니다.

class Api::V1::UserTeamSerializer < ActiveModel::Serializer 
    ... 
    has_many :movies, embed: :ids 
    ... 
end 

이것은 분명히 훌륭했습니다.

그러나 최근에 sort_order 인 user_list_movies에 열을 추가했습니다. UserList가 요청되면 user_list_movie_id와 각각의 sort_order를 반환하려고합니다.

어떻게하면됩니까? 이러한 값을 직렬화기에 모두 포함하려면 어떻게합니까? 아니면 다른 방법으로 갈 필요가 있습니까?

답변

0

가장 간단한 방법은 다른 serializer를 만드는 것입니다. MovieSerializer를 호출하여 동영상 객체를받을 수도 있습니다.

class Api::V1::MovieSerializer < ActiveModel::Serializer 

    attributes :id, :sort_order 

end 

그런 다음 당신은 당신의 UserTeamSerializer에 그 시리얼을 지정 직렬화 된 영화 객체의 배열을 반환합니다

class Api::V1::UserTeamSerializer < ActiveModel::Serializer 
    ... 
    has_many :movies, serializer: Api::V1::MovieSerializer 
    ... 
end 

, idsort_order 각.

질문에 대한 답변이 있습니까?