method
delete_records
rails latest stable - Class:
ActiveRecord::Associations::HasAndBelongsToManyAssociation
delete_records(records, method)private
No documentation available.
# File activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb, line 41
def delete_records(records, method)
if sql = options[:delete_sql]
records = load_target if records == :all
records.each { |record| owner.class.connection.delete(interpolate(sql, record)) }
else
relation = join_table
condition = relation[reflection.foreign_key].eq(owner.id)
unless records == :all
condition = condition.and(
relation[reflection.association_foreign_key]
.in(records.map { |x| x.id }.compact)
)
end
owner.class.connection.delete(relation.where(condition).compile_delete)
end
end