diff --git a/lib/restpack_serializer/serializable/side_load_data_builder.rb b/lib/restpack_serializer/serializable/side_load_data_builder.rb index 495cfad..37535a8 100644 --- a/lib/restpack_serializer/serializable/side_load_data_builder.rb +++ b/lib/restpack_serializer/serializable/side_load_data_builder.rb @@ -2,16 +2,17 @@ module RestPack module Serializer class SideLoadDataBuilder - def initialize(association, models, serializer) + def initialize(association, models, serializer, root_options) @association = association @models = models @serializer = serializer + @root_options = root_options end def side_load_belongs_to foreign_keys = @models.map { |model| model.send(@association.foreign_key) }.uniq.compact side_load = foreign_keys.any? ? @association.klass.find(foreign_keys) : [] - json_model_data = side_load.map { |model| @serializer.as_json(model) } + json_model_data = side_load.map { |model| @serializer.as_json(model, @root_options.context) } { @association.plural_name.to_sym => json_model_data, meta: { } } end @@ -46,7 +47,7 @@ def model_ids def has_association_relation return {} if @models.empty? serializer_class = @serializer.class - options = RestPack::Serializer::Options.new(serializer_class) + options = RestPack::Serializer::Options.new(serializer_class, {}, nil, @root_options.context) yield options options.include_links = false serializer_class.page_with_options(options) diff --git a/lib/restpack_serializer/serializable/side_loading.rb b/lib/restpack_serializer/serializable/side_loading.rb index e5a1b12..b61e1c2 100644 --- a/lib/restpack_serializer/serializable/side_loading.rb +++ b/lib/restpack_serializer/serializable/side_loading.rb @@ -59,7 +59,8 @@ def side_load(include, models, options) serializer = RestPack::Serializer::Factory.create(association.class_name) builder = RestPack::Serializer::SideLoadDataBuilder.new(association, models, - serializer) + serializer, + options) builder.send("side_load_#{association.macro}") end