Include Enumerable to ArraySerializer

This commit is contained in:
Tema Bolshakov 2014-08-28 23:03:23 +04:00
parent 85b4b85bb3
commit 85ff8123fd
2 changed files with 5 additions and 8 deletions

View File

@ -8,9 +8,7 @@ module ActiveModel
associations = serializer.associations(only: [:id]).each_with_object({}) do |(attr, value), h| associations = serializer.associations(only: [:id]).each_with_object({}) do |(attr, value), h|
h[attr] = case value h[attr] = case value
when ActiveModel::Serializer::ArraySerializer when ActiveModel::Serializer::ArraySerializer
value.attributes(options).map do |item| value.map(&:id)
item.id
end.to_a
when ActiveModel::Serializer when ActiveModel::Serializer
# process belongs_to association # process belongs_to association
else else

View File

@ -1,12 +1,11 @@
module ActiveModel module ActiveModel
class Serializer class Serializer
class ArraySerializer < Serializer class ArraySerializer < Serializer
def initialize(object) include Enumerable
@object = object delegate :each, to: :object
end
def attributes(options = {}) def initialize(object)
object.map do |item| @object = object.map do |item|
serializer_class = ActiveModel::Serializer.serializer_for(item) serializer_class = ActiveModel::Serializer.serializer_for(item)
serializer_class.new(item) serializer_class.new(item)
end end