Associations doesn't depend on source serializer anymore

This commit is contained in:
Santiago Pastorino 2013-05-13 16:00:16 -07:00
parent 460a250984
commit 5017fb686a
2 changed files with 10 additions and 6 deletions

View File

@ -392,6 +392,10 @@ module ActiveModel
Associations::HasOne
end
options[:value] ||= send(name)
options[:embed] = _embed unless options.key?(:embed)
options[:include] = _root_embed unless options.key?(:include)
options[:serializer_options] = self.options
association = association_class.new(name, self, options)
if association.embed_ids?

View File

@ -38,19 +38,19 @@ module ActiveModel
end
def associated_object
option(:value) || source_serializer.send(name)
option(:value)
end
def embed_ids?
[:id, :ids].include? option(:embed, source_serializer._embed)
[:id, :ids].include? option(:embed)
end
def embed_objects?
[:object, :objects].include? option(:embed, source_serializer._embed)
[:object, :objects].include? option(:embed)
end
def embed_in_root?
option(:include, source_serializer._root_embed)
option(:include)
end
def embeddable?
@ -61,9 +61,9 @@ module ActiveModel
def find_serializable(object)
if target_serializer
target_serializer.new(object, source_serializer.options)
target_serializer.new(object, option(:serializer_options))
elsif object.respond_to?(:active_model_serializer) && (ams = object.active_model_serializer)
ams.new(object, source_serializer.options)
ams.new(object, option(:serializer_options))
else
object
end