method
delete_records
v4.0.2 -
Show latest stable
-
0 notes -
Class: ActiveRecord::Associations::HasAndBelongsToManyAssociation
delete_records(records, method)
private
Hide source
# 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