Has_many :through with join table as a has_many FK issue

I have a join table:

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

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
for the relationship in TBb.

When I delete the relationship in the join table the data still remains