删除连接的对象

时间:2012-12-15 17:01:32

标签: ruby-on-rails ruby-on-rails-3

我有一个用户类has_many地址 - 和地址belongs_to用户 如何定义它,以便在删除地址时,它也会从user.adresses中删除,反之亦然,如果我user.addresses.delete(address),则Addresses.all中不再显示该地址?

2 个答案:

答案 0 :(得分:1)

要在删除用户时销毁地址,您可以在关联中声明它。

class User < ActiveRecord::Base
  has_many :addresses, :dependent => :destroy #destroy addresses when user destroyed
end

您不需要为反过来做任何事情,因为外键在Address模型上。

答案 1 :(得分:0)

您需要传递:dependent =&gt; :破坏用户模型的has_many实现

has_many :addresses, :dependent => :destroy

如果您这样做,那么如果删除了一个用户,那么与该用户关联的所有Address对象也将被删除。