在我的应用程序中,我拥有用户,角色和权限。在Rails中删除连接表记录销毁
当我删除一个角色时,我想要删除与连接表中的该角色关联的所有用户和权限。 我不想删除用户或权限。
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