I am working with Rails 3.0.7 right now, and the polymorphic type is defined in active_record-3.0.7/lib/active_record/association.rb , line 1773.
def create_belongs_to_reflection(association_id, options) options.assert_valid_keys(valid_keys_for_belongs_to_association) reflection = create_reflection(:belongs_to, association_id, options, self) if options[:polymorphic] reflection.options[:foreign_type] ||= reflection.class_name.underscore + "_type" end reflection end
So it looks like it calls class_name.underscore and then adds "_type". This may be slightly different for rails 3.1, but this should be a good starting place.
Sean hill
source share