mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-22 22:06:50 +00:00
serialize_ids doesn't use source serializer and it's object
This commit is contained in:
parent
9f5e872621
commit
0917148617
@ -384,7 +384,12 @@ module ActiveModel
|
||||
association = association_class.new(name, self, options)
|
||||
|
||||
if association.embed_ids?
|
||||
node[association.key] = association.serialize_ids
|
||||
node[association.key] =
|
||||
if options[:embed_key] || self.respond_to?(name) || !self.object.respond_to?(association.id_key)
|
||||
association.serialize_ids
|
||||
else
|
||||
self.object.read_attribute_for_serialization(association.id_key)
|
||||
end
|
||||
|
||||
if association.embed_in_root? && hash.nil?
|
||||
raise IncludeError.new(self.class, association.name)
|
||||
|
||||
@ -100,12 +100,8 @@ module ActiveModel
|
||||
end
|
||||
|
||||
def serialize_ids
|
||||
if !options[:embed_key] && !source_serializer.respond_to?(@name.to_s) && source_serializer.object.respond_to?(id_key)
|
||||
source_serializer.object.read_attribute_for_serialization(id_key)
|
||||
else
|
||||
associated_object.map do |item|
|
||||
item.read_attribute_for_serialization(embed_key)
|
||||
end
|
||||
associated_object.map do |item|
|
||||
item.read_attribute_for_serialization(embed_key)
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -179,21 +175,16 @@ module ActiveModel
|
||||
end
|
||||
|
||||
def serialize_ids
|
||||
if polymorphic?
|
||||
if associated_object
|
||||
if associated_object
|
||||
id = associated_object.read_attribute_for_serialization(embed_key)
|
||||
if polymorphic?
|
||||
{
|
||||
:type => polymorphic_key,
|
||||
:id => associated_object.read_attribute_for_serialization(embed_key)
|
||||
:id => id
|
||||
}
|
||||
else
|
||||
nil
|
||||
id
|
||||
end
|
||||
elsif !options[:embed_key] && !source_serializer.respond_to?(@name.to_s) && source_serializer.object.respond_to?(id_key)
|
||||
source_serializer.object.read_attribute_for_serialization(id_key)
|
||||
elsif associated_object
|
||||
associated_object.read_attribute_for_serialization(embed_key)
|
||||
else
|
||||
nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Loading…
Reference in New Issue
Block a user