Merge pull request #273 from seanabrahams/embed-ids-not-using-local-method

Fixes #267
This commit is contained in:
Steve Klabnik
2013-04-15 17:44:06 -07:00
3 changed files with 29 additions and 6 deletions

View File

@@ -133,7 +133,7 @@ module ActiveModel
def serialize_ids
ids_key = "#{@name.to_s.singularize}_ids".to_sym
if !option(:embed_key) && source_serializer.object.respond_to?(ids_key)
if !option(:embed_key) && !source_serializer.respond_to?(@name.to_s) && source_serializer.object.respond_to?(ids_key)
source_serializer.object.read_attribute_for_serialization(ids_key)
else
associated_object.map do |item|
@@ -219,7 +219,7 @@ module ActiveModel
else
nil
end
elsif !option(:embed_key) && source_serializer.object.respond_to?(id_key)
elsif !option(: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)