1

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

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

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

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

谢谢

4

1 回答 1

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

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

于 2013-05-22T20:55:02.210 回答