Prefiero lo siguiente ya que mantiene la lógica del modelo en el modelo. No entiendo por qué ActiveRecord no solo lo hace. De todos modos, en ambos modelos unidos, agrego la siguiente devolución de llamada.
before_destroy {|object| object.collection.clear}
Así que en su ejemplo:
class Company
has_and_belongs_to_many :users
before_destroy {|company| company.users.clear}
end
class User
has_and_belongs_to_many :companies
before_destroy {|user| user.companies.clear}
end
En muchas discusiones en torno a hacer una eliminación en cascada en una asociación colección, muchas personas declaran la asociación HABTM muertos y recomiendan has_many: a través de su lugar. Estoy en desacuerdo. Usa lo que tenga sentido. Si la asociación no tiene atributos intrínsecos, entonces use HABTM.
El enlace ahora está roto. – sivabudh
@ ShaChris23 He actualizado el enlace a la última versión disponible de la API oficial. Dudo que eliminen 'collection.delete' pronto, así que probablemente sea el mejor enlace para ello. Gracias por el aviso. – theIV
wheere ¿debo llamar eso? –