Si desea mantener a la simple asociación has_and_belongs_to_many
, se podría añadir lo siguiente:
class Person < ActiveRecord::Base
has_and_belongs_to_many :posts
before_destroy { posts.clear }
end
que despejará la tabla de unión de todas las entradas de ese person
. Nota: Esto solo elimina los registros de la tabla de unión, no destruye el posts
(lo cual tiene sentido si es una dirección bidireccional has_and_belongs_to_many
porque el post
podría ser referenciado por otra persons
).
Pero suponiendo, desde su nombre (Person
y Post
) Me gustaría asumir que es probable que pueda salir con un Person has_many :posts
y una Post belongs_to :person
en cuyo caso se puede utilizar el :dependent => :destroy
sobre la asociación has_many
.
¿Podría agregar cómo implementaría una acción 'dependent:: destroy' en una relación ** bidireccional **' has_and_belongs_to_ many'' que se vincula con el ** mismo modelo **? – JJD
No estoy seguro si la sintaxis fue originalmente como esta respuesta, pero sé que en los rieles 4 se supone que es 'before_destroy {posts.clear}' – mkralla11
Gracias, lo edité para ser 'before_destroy' –