2013-05-22 1 views
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 

При удалении пользователя, он удаляет связанный аккаунт и все его дочерние пользователя. Как я могу добиться, чтобы удалить дочернего пользователя, чтобы удалить родителя и учетную запись, связанную с ее родителем.

То же самое с фильтром. На удалении родительского пользователя он должен удалить соответствующий фильтр, а также все фильтры, которые связаны с ребенком (чей родитель удаляется)

Благодарности

+0

Должно ли оно удалять и всех пользователей-братьев? –

+0

Да, при удалении родителя он должен удалить родных братьев – user588324

ответ

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 

Вы будете вероятно, придется внести некоторые корректировки, чтобы заставить его работать, но, надеюсь, это, по крайней мере, указывает вам в правильном направлении.

+0

Спасибо. Я буду обновлять вас, когда он будет работать. – user588324

Смежные вопросы