【发布时间】:2016-11-22 17:21:49
【问题描述】:
在我的应用中,我有用户、角色和权限。
当我删除一个角色时,我想在连接表中删除与该角色关联的所有用户和权限。 我不想删除用户或权限。
class Role < ActiveRecord::Base
has_and_belongs_to_many :users, :join_table => 'users_roles'
has_and_belongs_to_many :permissions, :join_table => 'roles_permissions'
end
查看文档,您可以使用:dependant,但这看起来也会破坏相关记录。但我只想销毁连接记录。
我正在考虑这样做:
after_destroy :remove_associated_users
after_destroy :remove_associated_permissions
def remove_associated_users
connection = ActiveRecord::Base.connection
connection.execute("DELETE FROM users_roles WHERE role_id = " + self.id.to_s)
end
def remove_associated_permissions
connection = ActiveRecord::Base.connection
connection.execute("DELETE FROM roles_permissions WHERE role_id = " + self.id.to_s)
end
【问题讨论】:
标签: ruby-on-rails