mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-25 15:23:06 +00:00
use id methods
This commit is contained in:
@@ -355,6 +355,9 @@ module ActiveModel
|
||||
serializable_hashes = (hash[key] ||= [])
|
||||
|
||||
serializables.each do |serializable|
|
||||
puts key
|
||||
puts serializable.inspect
|
||||
|
||||
unless already_serialized.include? serializable.object
|
||||
already_serialized[serializable.object] = true
|
||||
serializable_hashes << serializable.serializable_hash
|
||||
|
||||
@@ -109,12 +109,15 @@ module ActiveModel
|
||||
def serialize_ids
|
||||
# Use pluck or select_columns if available
|
||||
# return collection.ids if collection.respond_to?(:ids)
|
||||
|
||||
if !option(:include) && associated_object.respond_to?(:pluck)
|
||||
associated_object.pluck(:id)
|
||||
else
|
||||
associated_object.map do |item|
|
||||
item.read_attribute_for_serialization(:id)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class HasOne < Config #:nodoc:
|
||||
def embeddable?
|
||||
@@ -161,15 +164,19 @@ module ActiveModel
|
||||
end
|
||||
|
||||
def serialize_ids
|
||||
object = associated_object
|
||||
|
||||
if object && polymorphic?
|
||||
if polymorphic?
|
||||
if associated_object
|
||||
{
|
||||
:type => polymorphic_key,
|
||||
:id => object.read_attribute_for_serialization(:id)
|
||||
:id => associated_object.read_attribute_for_serialization(:id)
|
||||
}
|
||||
elsif object
|
||||
object.read_attribute_for_serialization(:id)
|
||||
else
|
||||
nil
|
||||
end
|
||||
elsif source_serializer.object.respond_to?("#{name}_id")
|
||||
source_serializer.object.send("#{name}_id")
|
||||
elsif associated_object
|
||||
associated_object.read_attribute_for_serialization(:id)
|
||||
else
|
||||
nil
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user