Ruby on Rails 3:在destroy方法销毁对象后,如果系统中没有更多相关对象?

2023-12-14

我有一个小问题,我有以下 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(使用前将#替换为@)

Ruby on Rails 3:在destroy方法销毁对象后,如果系统中没有更多相关对象? 的相关文章

随机推荐

  • 在 Google 自定义搜索中使用 TBS(或等效参数)

    使用时谷歌自定义搜索用于选择特定类型搜索引擎的 TBM 参数 例如 专利的 tbm pts 或博客的 tbm blg 似乎受到支持 尽管参数列表中没有正确记录这一点 然而 当使用这种 特殊 搜索时 通常会使用 TBS 参数来扩展查询 不幸的
  • 敏感的 ASP.NET Session 数据是否需要加密?

    ASP NET Session string key 数据是否需要加密才能安全 如果此类数据始终保留在服务器上 那么只要数据是通过 SSL 从客户端发送的 那么在那里存储信用卡信息 密码等是否就可以安全了 鉴于所有的反对票都投在这里 我将添
  • 在android中显示后台服务的弹出窗口

    您好 android 中可以显示后台运行服务的弹出对话框吗 答案是肯定的 我该怎么做 有几种选择 您可以使用主题并使活动的外观和行为类似于对话框 如这个问题 通过设置android theme你的属性
  • img 标签显示方向错误

    我在这个链接中有一张图片 http d38daqc8ucuvuv cloudfront net avatars 216 2014 02 19 2017 13 48 jpg 正如您所看到的 这是一个方向正确的正常图像 但是 当我将此链接设置为
  • 如何使用seaborn实现Lineplot,x轴为“日期”

    我尝试实现seaborn lineplot 数据框具有日期值列表作为索引 试图将其作为 x 轴 Dataframe info 将 日期 字段显示为对象 我需要以日期为 x 轴的 4 种类型的列值的线图 当我尝试执行下面的代码时 它显示错误消
  • 为什么从 java 9 PhantomReference java doc 开始,它就专门用于 POST-mortem 清理操作,尽管它之前是 PRE-mortem

    PhantomReference java 8 的 java 文档更少看起来像这样 幻像引用对象 在收集器之后排队 确定它们的引用对象可以以其他方式被回收 幻影 参考最常用于调度事前清理 行动以比 Java 更灵活的方式 最终确定机制 如果
  • Android - XPath 评估速度非常慢

    我在用着XPath查询我的XML file目前大约有100KB 我正在迭代一个数组并查询列表中的每个值 不幸的是单个查询大约需要 3 4 秒在调试器下 在禁用调试器的情况下稍微少一些 有什么想法为什么这么慢吗 我用一个Galaxy S2供测
  • 为什么非 pic 代码不能使用运行时修复完全实现 ASLR?

    据我了解 PIC 代码使 ASLR 随机化更加高效 更加容易 因为代码可以放置在内存中的任何位置 而无需更改代码 但如果我根据维基百科理解正确的话搬迁动态链接器可以在运行时进行 修复 以便可以找到符号 尽管代码不是位置无关的 但根据我在这里
  • Java中ConcurrentSkipListMap的非线程安全方法

    在我的 Java 项目中 我需要以多线程方式使用 TreeMap 我发现 ConcurrentSkipListMap 是我所需要的 但有些方法不是线程安全的 其中之一 containsKey 对象键 以多线程方式使用此方法的典型解决方案是什
  • 标题应该按什么顺序包含? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 在头文件 cpp 文件中应该以什么顺序声明头文件 显然 后续标头所需的标头应该更早 并且特定于类的标头应该在 cpp 范围而不是标头范围中 但是是否有设定的顺序约定 最佳实践 在头文件中
  • 安装适用于 Android 的 ADB 接口驱动程序

    我尝试通过设备管理器安装 将手机连接到笔记本电脑后 我在设备管理器的 其他设备 部分中收到 Celkon 内置 GSM 手机 链接 我右键单击并单击 更新驱动程序 和 从指定位置安装 并找到 inf 文件 usb2ser 2kXP inf
  • 无法在 Windows 上克隆,但可以从 Gitlab 服务器在 Linux 上克隆

    我正在尝试通过 SSH 从远程 Gitlab 服务器克隆存储库 我在用Gitlab CE version 9 3 9 755bb71 and TortoiseGIT version 2 5 0 and git for windows ver
  • 如何使用 prettier 忽略特定规则?

    有没有办法不format write or check更具体的规则 例如 我不在乎我的代码中是否有分号 我想检查除此之外的其他规则 prettier useTabs true tabWidth 4 很不幸的是 不行 有人指出 它永远不会提供
  • 保持图像的长宽比?

    我正在使用 pictureBox 来显示从服务器接收的图像 但我的问题是紧凑框架中的图片框只有三种尺寸模式 拉伸图像 正常 中心图像 我收到的图片通常尺寸较大 因此我必须使用 StrecthImage 模式 但随后纵横比保持不变 因此显示的
  • 当不知道 InterfaceClassGUID 时,我可以使用 SetupDiEnumDeviceInterfaces 从 SetupDiGetDeviceInterfaceDetail 获取 DevicePath 吗?

    概述 我读过了如何获取设备的设备接口 GUID and 如何使用设备实例 ID 打开设备的句柄 但我仍然对如何 或者是否应该 使用感到困惑设置DiEnumDeviceInterfaces与设置DiGetDeviceInterfaceDeta
  • 使用UrlFetchApp函数登录并抓取私有数据

    我需要从不支持 API 的门户中抓取私有数据 IMPORTXML由于登录而无法执行此操作 我有一个包含从和至今信息的链接 内容是包含成本数据的表格 我需要登录并将简单的表格抓取到我的 Google 表格中 我需要登录这个网站 https w
  • JavaScript。像 SQL 一样连接 2 组对象的最佳方法?

    假设我们有 2 组对象 set1 id 1 x 1 y 2 id 2 x 2 y 2 set2 id 1 z 1 id 2 z 2 我们想要 set3 set1 join set2 on id gt gt set3 id 1 x 1 y 2
  • 查找到 LED 的距离

    想象一下 您有一个圣诞树风格的 LED 灯 距相机的距离为 D 了解了 LED 灯 例如形状和强度 和相机 例如焦距 的属性 是否可以使用快照计算从相机到 LED 灯的距离 如果是 测量的准确度如何 明亮的光源本身对此不利因为明亮的光线通常
  • 如何在java pdfbox中按结果分割pdf文件

    我有一个 pdf 文件 包含 60 页 在每个页面中 我都有唯一且重复的发票编号 我使用的是 Apache PDFBOX import java io import org apache pdfbox pdmodel import org
  • Ruby on Rails 3:在destroy方法销毁对象后,如果系统中没有更多相关对象?

    我有一个小问题 我有以下 2 个型号 class CriticalProcess lt ActiveRecord Base has many authorizations dependent gt destroy has many role