在删除子用户时,删除父用户和与父关联的帐户

时间:2013-05-22 20:42:06

标签: ruby-on-rails

我在用户和帐户之间有关系

class User < ActiveRecord::Base

  has_one :account, :dependent => :destroy
  has_many :child_users, :class_name => "User",:foreign_key => "parent_id"
  has_one :filter, :dependent => :destroy

end

class Account < ActiveRecord::Base
  belongs_to :user
end

当我删除用户时,它会删除关联的帐户及其所有子用户。如何删除子用户以删除与其父级相关的父级和帐户。

与Filter相同。在删除父用户时,它应删除关联的过滤器以及与子项关联的所有过滤器(其父项已删除)

由于

1 个答案:

答案 0 :(得分:2)

的内容如何
class User < ActiveRecord::Base
  has_one :account, :dependent => :destroy
  has_many :child_users, :class_name => "User", :foreign_key => "parent_id"
  has_one :parent_user, :class_name => "User"

  after_destroy :destroy_parent

  def destroy_parent
    parent_user.destroy
  end
end

您可能需要进行一些调整才能使其真正发挥作用,但希望这至少可以指出您正确的方向。