diff --git a/lib/active_model/serializer.rb b/lib/active_model/serializer.rb index f0a23381..d89bfb2f 100644 --- a/lib/active_model/serializer.rb +++ b/lib/active_model/serializer.rb @@ -22,11 +22,25 @@ module ActiveModel SETTINGS[:include] = true if options[:include] end - def serializer_for(resource) - if resource.respond_to?(:to_ary) - ArraySerializer - else - "#{resource.class.name}Serializer".safe_constantize + if RUBY_VERSION >= '2.0' + def serializer_for(resource) + if resource.respond_to?(:to_ary) + ArraySerializer + else + begin + Object.const_get "#{resource.class.name}Serializer" + rescue NameError + nil + end + end + end + else + def serializer_for(resource) + if resource.respond_to?(:to_ary) + ArraySerializer + else + "#{resource.class.name}Serializer".safe_constantize + end end end