diff --git a/lib/active_model/serializer/associations.rb b/lib/active_model/serializer/associations.rb index e2e13c22..d647d816 100644 --- a/lib/active_model/serializer/associations.rb +++ b/lib/active_model/serializer/associations.rb @@ -80,6 +80,11 @@ module ActiveModel end class HasOne < Base #:nodoc: + def initialize(name, options={}, serializer_options={}) + super + @polymorphic = options[:polymorphic] + end + def root if root = options[:root] root @@ -132,14 +137,13 @@ module ActiveModel private + attr_reader :polymorphic + alias polymorphic? polymorphic + def use_id_key? embed_ids? && !polymorphic? end - def polymorphic? - options[:polymorphic] - end - def polymorphic_key object.class.to_s.demodulize.underscore.to_sym end