I have a join table:
sitedata
belongs_to :tb1
belongs_to tb2
has_many :tb3
When I add a relationship in the join table I then add data to the tb3
table and that populates the FK in tb3 with the id of the join table.
no problems there.
when I delete the row in the join table the data stays in the tb3
table. how do I get the tb3 data to delete?
Is not has_many supposed to delete the data on the other end when the
primary table no longer has a reference?
If I go into the DB and make the FK a constraint with a delete on
cascade it works when the data in the join table is deleted.
Your example doesn’t make much sense from here, but you’ll probably
want to look into the various :dependent options to has_many.
–Matt J.
you have to add :dependent => :destroy in the association
you B table has_many A
then the B model will looks like
has_many :A , :dependent => :destroy
so when you destroy an object of B it will automatically delete all
the As that was associated with that B
Here is the layout,
TBa -> TBb -> TBc
|
TBd
TBa has_many TBc :through => :TBb
TBb is the join table.
TBb has_many :TBd, :dependent => destroy.
TBd data stays there even though the data in TBb is deleted.
In my program I make the relationship dynamically and then I add data to
TBd
for the relationship in TBb.
When I delete the relationship in the join table the data still remains
in
TBd.