hi all,
I have a table “memberships”. It has a field user_id, which I want to
use as a foreign key to the “users” table.
So, as far as I get it, in the membership model I have to write:
has_many :users
In the users model, I write:
belongs_to :membership
However(in case the above is correct), how do I ensure that if I delete
a user, the related entities in membership will be also deleted??
Thank you
Pesho P. wrote:
hi all,
I have a table “memberships”. It has a field user_id, which I want to
use as a foreign key to the “users” table.
In that case you should have :
“has_many :memberships” in the User model class
and “belongs_to :user” in the Membership model class
If you want all related memberships destroyed when deleting a user, you
must write this in the User class:
“has_many :memberships, :dependent=>:destroy”
(See
for more info about :destroy option)
On Tue, Mar 3, 2009 at 5:19 PM, Pesho P.
[email protected] wrote:
a user, the related entities in membership will be also deleted??
Check the options for “has_one” and “has_many” (e.g. on page 329 and
page 331 in the Second Edition of “Agile Web D. with Rails”).
Use “destroy” on the parent object (not delete).
The option to the has_one or has_many you want is:
:dependent => :destroy
or
:dependent => :delete_all
depending on your design. The child row(s) will be destroyed at the time
the
parent is destroyed.
HTH,
Peter