AMS версии 0.8.3,нагрузки ассоциации к одному уровню, условно sideloading ассоциации в активной модели сериализаторов
Я создал base_serializer.rb, как это и распространяется то же самое.
class BaseSerializer < ActiveModel::Serializer
def include_associations!
if @options[:embed]
embed = @options[:embed].split(',').map{|item| item.strip.to_sym}
embed.each do |assoc|
include! assoc if _associations.keys.include?(assoc)
end
end
end
end
class EventSerializer < BaseSerializer
attributes :id, :name
has_many :organizers, serializer: OrganizerSerializer
has_many :participants, serializer: ParticipantSerializer
end
class OrganizerSerializer < BaseSerializer
attributes :id, :name
has_many :related, serializer: RelatedSerializer
end
class ParticipantSerializer < BaseSerializer
attributes :id, :name
has_many :related, serializer: RelatedSerializer
end
class RelatedSerializer < BaseSerializer
attributes :id, :name
has_many :something, serializer: SomethingSerializer
end
и индексный метод в EventsController записывается как
# GET /events?embed=organizers,participants
def index
@events = Event.all
render json: @events, embed: params[:embed]
end
С этим я могу получить: Удостоверение личности и: название мероприятия, организаторов и участников. Но, я хочу также атрибуты связанной ассоциации. Мне не нужны детали сериализатора. Я хочу идти до этого уровня для каждой ассоциации. Как я могу это достичь?