method
create_has_and_belongs_to_many_reflection
rails latest stable - Class:
ActiveRecord::Associations::ClassMethods
create_has_and_belongs_to_many_reflection(association_id, options, &extension)private
No documentation available.
# File activerecord/lib/active_record/associations.rb, line 1795
def create_has_and_belongs_to_many_reflection(association_id, options, &extension)
options.assert_valid_keys(valid_keys_for_has_and_belongs_to_many_association)
options[:extend] = create_extension_modules(association_id, extension, options[:extend])
reflection = create_reflection(:has_and_belongs_to_many, association_id, options, self)
if reflection.association_foreign_key == reflection.primary_key_name
raise HasAndBelongsToManyAssociationForeignKeyNeeded.new(reflection)
end
reflection.options[:join_table] ||= join_table_name(undecorated_table_name(self.to_s), undecorated_table_name(reflection.class_name))
if connection.supports_primary_key? && (connection.primary_key(reflection.options[:join_table]) rescue false)
raise HasAndBelongsToManyAssociationWithPrimaryKeyError.new(reflection)
end
reflection
end