Skip to content

Commit 9c26ffe

Browse files
committed
Better variables; allow looking serializer from class
1 parent 87e929a commit 9c26ffe

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

lib/active_model/serializer.rb

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,18 @@ class Serializer
3434
# @param resource [ActiveRecord::Base, ActiveModelSerializers::Model]
3535
# @return [ActiveModel::Serializer]
3636
# Preferentially returns
37-
# 1. resource.serializer
37+
# 1. resource.serializer_class
3838
# 2. ArraySerializer when resource is a collection
3939
# 3. options[:serializer]
4040
# 4. lookup serializer when resource is a Class
41-
def self.serializer_for(resource, options = {})
42-
if resource.respond_to?(:serializer_class)
43-
resource.serializer_class
44-
elsif resource.respond_to?(:to_ary)
41+
def self.serializer_for(resource_or_class, options = {})
42+
if resource_or_class.respond_to?(:serializer_class)
43+
resource_or_class.serializer_class
44+
elsif resource_or_class.respond_to?(:to_ary)
4545
config.collection_serializer
4646
else
47-
options.fetch(:serializer) { get_serializer_for(resource.class, options[:namespace]) }
47+
resource_class = resource_or_class.class == Class ? resource_or_class : resource_or_class.class
48+
options.fetch(:serializer) { get_serializer_for(resource_class, options[:namespace]) }
4849
end
4950
end
5051

0 commit comments

Comments
 (0)