Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

habtm relationship does not support :dependent option

Is it true that HABTM relationships do not support the :dependent option?

class Person < ActiveRecord::Base
  has_and_belongs_to_many :posts, :dependent => :destroy
end

I am trying rails edge.

like image 686
Nick Vanderbilt Avatar asked Sep 07 '25 12:09

Nick Vanderbilt


1 Answers

If you want to keep to the simple has_and_belongs_to_many association, you could add this:

class Person < ActiveRecord::Base
  has_and_belongs_to_many :posts
  before_destroy { posts.clear }
end

Which will clear the join table of all entries of that person. Note: This only removes records from the join table, it does not destroy the posts (which makes sense if it is a bi-direction has_and_belongs_to_many because the post might be referenced by other persons).

But guessing from your names (Person and Post) I would assume that you can probably get away with a Person has_many :posts and a Post belongs_to :person in which case you can use the :dependent => :destroy on the has_many association.

like image 57
Matt Connolly Avatar answered Sep 09 '25 08:09

Matt Connolly