我有一个小问题,我有以下 2 个型号:
class CriticalProcess < ActiveRecord::Base
has_many :authorizations, :dependent => :destroy
has_many :roles, :through => :authorizations
after_destroy :check_roles
def check roles
cp_roles = self.roles
cp_roles.each do |role|
if role.critical_processes.size == 0
role.destroy
end
end
end
end
and
class Role < ActiveRecord::Base
has_many :authorizations
has_many :critical_processes, :through => :authorizations
end
因此,1 个角色可以属于许多关键流程,有什么办法可以做到这一点:ALL角色所属的关键流程都被破坏了,那么角色也被破坏了?我需要这个,因为如果与角色有关系的所有 CP(关键进程)都将被销毁,那么该角色也应该被销毁,因为它不再需要。
UPDATE
我现在创建了一个 after_destroy 方法,该方法应该删除角色,但这似乎不起作用,出于某种原因,在使用日志进行调试后,由于某种原因,它不会循环遍历数组?
为什么是这样?
Thanks
也许你可以定义after_destroy
callback在关键过程课程中。在 - 的里面after_destroy
然后,您可以检查关联的角色是否具有零 CP,如果是,则删除该角色。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)