class ActiveRecord::Associations::BelongsToPolymorphicAssociation

:nodoc:

def different_target?(record)

def different_target?(record)
  super || record.class != klass
end

def inverse_reflection_for(record)

def inverse_reflection_for(record)
  reflection.polymorphic_inverse_of(record.class)
end

def klass

:nodoc:
def klass
  type = owner[reflection.foreign_type]
  type.presence && type.constantize
end

def raise_on_type_mismatch!(record)

def raise_on_type_mismatch!(record)
  # A polymorphic association cannot have a type mismatch, by definition
end

def replace_keys(record)

def replace_keys(record)
  super
  owner[reflection.foreign_type] = record && record.class.base_class.name
end

def stale_state

def stale_state
  foreign_key = super
  foreign_key && [foreign_key.to_s, owner[reflection.foreign_type].to_s]
end