我正在开发一个 Rails 应用程序,用户可以在其中创建项目。有两种类型的用户Admins
和Collaborators
. Admins 和 Collaborators has_many :accounts, through: :account_users
,其中 account_users 是一个连接表。当管理员删除他们的帐户时,我也想删除他们创建的帐户和它的项目,但我无法让它工作。我的模型目前看起来像这样:
class Collaborator < User
[...]
has_many :account_users
has_many :accounts, through: :account_users
[...]
end
class Admin < User
has_many :account_users
has_many :accounts, through: :account_users, :dependent => :destroy
[...]
end
class Account < ActiveRecord::Base
[...]
belongs_to :admin
has_many :account_users
has_many :collaborators, through: :account_users
[...]
end
class AccountUser < ActiveRecord::Base
belongs_to :admin
belongs_to :account
belongs_to :collaborator
end
当管理员用户删除其帐户时,仅删除联接表和用户表中的行,不会删除他们的项目。
请注意,我使用设计来处理身份验证。
我怎么能解决这个问题?