mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-22 22:06:50 +00:00
Do not call send on associated objects, do it through elem.read_attribute_for_serialization
This commit is contained in:
parent
94a83c1cc0
commit
b9a6dfac2f
@ -160,9 +160,9 @@ module ActiveModel
|
|||||||
def serialize_ids(association)
|
def serialize_ids(association)
|
||||||
associated_data = send(association.name)
|
associated_data = send(association.name)
|
||||||
if associated_data.respond_to?(:to_ary)
|
if associated_data.respond_to?(:to_ary)
|
||||||
associated_data.map { |elem| elem.send(association.embed_key) }
|
associated_data.map { |elem| elem.read_attribute_for_serialization(association.embed_key) }
|
||||||
else
|
else
|
||||||
associated_data.send(association.embed_key) if associated_data
|
associated_data.read_attribute_for_serialization(association.embed_key) if associated_data
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
10
test/fixtures/poro.rb
vendored
10
test/fixtures/poro.rb
vendored
@ -4,11 +4,11 @@ class Model
|
|||||||
end
|
end
|
||||||
|
|
||||||
def read_attribute_for_serialization(name)
|
def read_attribute_for_serialization(name)
|
||||||
@attributes[name]
|
if name == :id || name == 'id'
|
||||||
end
|
object_id
|
||||||
|
else
|
||||||
def id
|
@attributes[name]
|
||||||
object_id
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user