我有一张权限表,里边儿存放着权限的信息,也包涵着一级和二级权限的关系! 我之前做删除操作的时候,先判断 father_id 是否为 0,如果是 0 的话得到所有子 权限,然后循环删除子权限,再删除一级权限;如果删除二级权限的话,直接 删除没问题!!! 想问一下有没有更好的解决方案:通过 dependent: :destroy 这个属相在一张表中 的删除该怎么配置?
个人局的可以加个 callback,删除后级联删除关联权限
能吐槽下father_id吗。。parent_id不好听吗 2333
father_id
parent_id
#2 楼 @Arthur_h 随后就改😊
#1 楼 @davidwei 尝试一下
https://github.com/stefankroes/ancestry
这是 has_one 和 has_many 上的用法:
我用 restrict_with_error,先删子资源,再删上一级。
restrict_with_error
在 belongs_to 上,也可以设置 dependent,但它只有两个参数:
#6 楼 @liwei78 👍好详细
我觉得可以用 self joins,应该很简单。手册的例子: class Employee < ActiveRecord::Base has_many :subordinates, class_name: "Employee", foreign_key: "manager_id"
belongs_to :manager, class_name: "Employee" end