如何触及 HABTM 关系

2023-12-26

如果您有 2 个模型,视频和类别,并且它们彼此之间具有“has_and_belongs_to_many”关系,那么当其中一个模型发生更改时,如何执行触摸以使缓存失效?

您不能像处理一对多关系那样“触摸”它们。现在,当我更改类别名称时,属于该类别的视频不知道更改,直到我使缓存无效。我的视图模板显示每个视频的类别名称。


在您想要更新的模型上,您可以执行以下操作:

class Video < ActiveRecord::Base
  has_and_belongs_to_many :categories,
                          after_add: :touch_updated_at,
                          after_remove: :touch_updated_at

  def touch_updated_at(category)
    self.touch if persisted?
  end

end

现在,每当在视频中添加或删除类别时,视频的 Updated_at 时间戳都会更新。如果您希望在添加视频或从中删除视频时更新类别,您可以对类别类执行相同的操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何触及 HABTM 关系 的相关文章

  • counter_cache 可以与 has_many 一起使用吗?

    我正在努力将 counter cache 添加到我的模型中 用户 id org id 组织 id users count 但出现以下错误 ArgumentError Unknown key s counter cache class Org
  • JPA 和枚举类型

    我将一个枚举类型字段用于 JPA 实体 Enumerated value EnumType STRING private Temperament temperament Temperament MINEUR PUR 我的枚举在我的实体内声明
  • 对同一类型的多个项目使用“引用”

    因此 我正在自学 Ruby on Rails 并具有 PHP 背景 我编写了一个草率的 概念验证的 PHP 应用程序 名为 2NDP http rezich com storybored 我想在 Ruby on Rails 中重新创建它 但
  • 使用 gem 添加辅助方法

    我找到了很多有关添加表单辅助方法的信息 请参阅我的其他问题之一 但我找不到有关添加辅助方法的任何信息 就好像它们是在application helper rb 我尝试过复制application helper rb从 Rails 应用程序到
  • 使用自定义令牌进行 Firebase 身份验证

    我有一个 firebase 项目 我试图从我的 Rails 服务器进行身份验证 按照文档上的说明使用 ruby jwt 库创建自定义令牌 但我不断收到相同的错误 auth invalid custom token 自定义令牌格式不正确 请检
  • jruby-openssl 中已初始化常量

    当在 Torquebox 上运行我的 Rails 应用程序时 我得到了很多 already initialized constant 警告源自gems jruby openssl 0 8 2 lib shared jruby openssl
  • 覆盖生产环境中的后端资产

    我正在开发一个需要稍微改变 Refinery 的 WYMEditor 行为的项目 这可以通过重写轻松完成jquery refinery wymeditor js using rake refinery override并根据我自己的需要进行
  • 为什么 npm install 失败并出现与 node-sass 相关的错误?

    我正在使用我继承的 Rails 应用程序 我正在尝试运行npm install命令但我不断收到errors以下 我尝试跑步npm rebuild node sass正如输出中所建议的 但它没有帮助 我遇到这个问题乌班图16也OS X gt
  • 使用 Figaro 和 Secrets.yml 管理环境变量

    我有一个 Rails 4 1 应用程序 我正在尝试组织我的环境变量 截至目前 我的 config 文件夹中有一个 Secrets yml 文件 我还安装了费加罗宝石 我的目标是将所有环境变量放在 application yml 未签入 gi
  • 如何向 ActiveRecord 集合添加方法?

    我想为特定模型的所有集合添加一个方法 假设我想添加方法my complicated averaging method到 WeatherData 集合 WeatherData all limit 3 my complicated averag
  • 在 Rails 中,如何创建用户组作为另一个关联,例如“成员”?

    我正在尝试在两个现有模型之间创建特殊关系 User and Dwelling A Dwelling只有一个所有者 Dwelling belongs to user User has one dwelling 在创建时 但其他用户可以添加到此
  • 在 Rails 中,如何为模型的新实例生成唯一的序列号?

    在 Rails 中 我正在寻找一种方法来生成自动递增序列号 以便为模型的新实例保存内部记录 我想避免创建特定于数据库的代码 而是拥有一个无论数据库如何都可以工作的解决方案 我当前的想法是等到模型保存后 然后获取已保存模型的 ID 并将其用作
  • 找不到关联,Rails 3

    class Membership lt ActiveRecord Base belongs to role belongs to user end class User lt ActiveRecord Base has many roles
  • 在 Rails 中使用 config.assets.precompile 将资源包含在子目录中

    我有一个在 Heroku 上运行的 Rails 3 1 3 应用程序 通过 S3 进行资产托管asset sync 包含在我的app assets css目录是一个包含两个文件的子目录 main css scss and categorie
  • 导轨、定制探测器

    所以我希望能够使用来获取一个对象find by id or name 我觉得我看到了另一个这样的问题 但很难找到任何资源来制作我自己的查找器 您可以通过向模型添加类方法来做到这一点 例如 class Model lt ActiveRecor
  • 如何在Rails 中使用highlight.js?

    我正在尝试在我的 Rails 应用程序中使用语法突出显示和highlight js height js 的说明如下 https github com isagalaev highlight js https github com isaga
  • 后端验证轨

    如何验证文本列不包含网站 示例可以是 www google com google com http gooogle com http www google com https www google com https google com
  • ActiveRecord::Enum - PG::InvalidTextRepresentation:错误:整数输入语法无效:

    我遇到了一个奇怪的错误 希望有人能指出我正确的方向 我有一个名为 组织 的模型和一个名为 组织 的属性department 请参阅下面的架构摘录 t integer department default 0 在我的模型内部已经定义了这个属性
  • Java LRU 缓存使用 LinkedList

    堆栈溢出的新手 所以请不要介意我以菜鸟的方式问这个问题 我正在尝试使用链表实现 LRU 缓存 我在这里看到了使用 linkedHashMap 和其他数据结构的其他实现 但对于这种情况 我正在尝试使用链表创建最佳优化版本 正如我在技术期间被问
  • 为什么这段 Ruby 代码无法写入日志文件?

    一旦脚本被守护 记录器就无法再写入文件 那么我应该如何以及何时初始化日志呢 require rubygems require daemons require logging def create new logger logger Logg

随机推荐

  • 使用带有 ajax 的 google 图表出现内存泄漏

    我对 javascript 相当陌生 并且在某些代码中找不到内存泄漏 这些代码每秒使用 ajax 数据更新 google 图表 我的代码 简化为一个小测试用例 function TimeLine id max this chart new
  • 无法重置Root密码:windows、MySQL8.0

    我忘记了 root 密码 我正在遵循官方网站 https dev mysql com doc mysql windows excerpt 8 0 en resetting permissions windows html重置我的密码 我已按
  • 在 RabbitMQ 中,哪个更昂贵,每个交换器有多个队列,还是多个交换器且每个交换器有更少的队列?

    因此 我们决定在向微服务架构的迁移中使用 RabbitMQ 作为消息 事件总线 但我们无法找到放置队列的最佳方式的明确答案 我们有两个选择 One main exchange which will be a Fanout exchange
  • 已安装 Poetry 但“poetry:未找到命令”

    最近我在诗歌方面遇到了一百万零一个问题 我昨天已经完全安装并工作了 但是重新启动我的机器后 我又遇到了问题 即使在重新启动后 是否有办法在我的终端中始终识别诗歌 系统规格 Windows 10 Visual Studio 代码 Bash W
  • Horizo​​ntalScrollView,自动滚动到结束并有动画

    我有一个horizo ntalScrollView 当我加载视图时 我需要进行自动滚动以以动画结束 我已经实现了这个方法来做到这一点 final HorizontalScrollView strip HorizontalScrollView
  • Selenium WebDriver 查找第 n 个元素

    我遇到了一个问题 无法解决它 我必须访问页面上的第 n 个图像 该图像位于 HTML 内的表格中 我需要单击图像以分别为每一行移动到下一个屏幕 我已经尝试了此处提供的各种解决方案 但由于我正在使用 findElement by 语法 因此我
  • 缩放 HTML5 视频并打破宽高比以填充整个网站

    我想使用 4 3 视频作为网站的背景 但是 将宽度和高度设置为 100 不起作用 因为宽高比保持不变 因此视频不会填充网站的整个宽度 这是我的 HTML 和 CSS 代码 HTML
  • 如何通过 Android KitKat 在外部 SD 卡上使用 O_DIRECT 或 O_SYNC

    我在一家生产包含硬件加密引擎的 SD 存储卡的公司工作 我们通过写入 读取特殊文件来与加密模块交互 从 KitKat 开始 O DIRECT外部 SD 卡似乎不支持该标志 没有O DIRECT or O SYNC支持 当我们从 SD 卡 通
  • RFID RC522 Raspberry PI 2 Windows 物联网

    我正在寻找一种在 Windows IOT 上的 Raspberry Pi 2 0 上使用 RFID RC522 的方法 当然不是官方兼容的 官方的 OM5577 演示板 在法国太贵了 我还没有找到任何经销商在没有大量运费的情况下出售它 总成
  • JS:获取元素的可见区域坐标

    我需要一个函数 可以计算当前在屏幕上可见的元素的可见区域 而无需隐藏部分overflow scroll position absolute etc 也就是这个函数的结果getVisiblePart el 将Visible Rect is x
  • 将 OpenCV 与 Tkinter 结合使用

    我正在编写一个程序 需要在 Tkinter 窗口中显示视频流 由于还有用于执行各种功能的按钮 因此我使用网格来组织所有内容 以下代码 修改自显示网络摄像头序列 TkInter https stackoverflow com question
  • 绘制按函数分组的多个图形并将其保存为 pdf

    我想创建一个包含 12 个图的 pdf 文件 有两个选项 每页一个图 每页四个图 Using plt savefig months pdf 仅保存最后一个图 MWE import pandas as pd index pd date ran
  • Solr高亮问题

    大家好 我有一个问题 当我查询 Solr 时 它会匹配结果 但是当我在此查询的结果上启用突出显示时 突出显示不起作用 我的查询是 内容 项目 503 内容是文本类型 并且文本项 503 中的一个重要内容显示为 项 503 c 最后的左括号会
  • Vuetify 3 组件无法在 chrome 中工作 - 未捕获类型错误:globalStack.at 不是函数

    我在使用从头开始创建的 vuetify 3 插件项目运行 Vue JS 项目时遇到此错误 我专门使用 v dialog 但它在其他组件的 chrome 中也出现控制台错误 Uncaught TypeError globalStack at
  • Git:强制执行 shell 脚本权限

    在 Git 中 您可以签入具有 644 或 755 权限的文件 我想强制所有 sh 文件始终存储为 755 权限 以便可以立即执行它们 尤其是在windows环境下很容易意外丢失权限 那么 有没有办法配置它 最好像使用 gitattribu
  • jaxb XmlAccessType: PROPERTY 示例

    我正在尝试使用 jaxb 并希望使用 XmlAccessType PROPERTY 让 jaxb 使用 getters setters 而不是直接使用变量 但是 get 不同的错误取决于我的尝试或变量 根本没有像我想要的那样设置 有什么好的
  • 仅显示垂直线的表格

    我需要一种方法来仅显示表格中的垂直线 我尝试将 border left 和 border right 添加到表格和单独的 td 中 两者都带有 1pxsolid red 但它不会添加边框颜色 所以我正在寻找一种创建这些垂直线的简单方法 Us
  • 如何在 SQL Server 中拆分字符串并将值插入到表中

    我有一个像这样的字符串 72594206916 2 1 2 08 Tacoma WA 72594221856 5 5 7 13 San Francisco CA 72594221871 99 12 30 12 Dallas TX 这基本上是
  • 用于创建应用程序注册的服务主体权限

    我使用服务主体作为 azure cli 的登录项 该服务主体的角色是 所有者 我正在尝试运行 az ad app list and az ad app create display name Test application 2 并出现错误
  • 如何触及 HABTM 关系

    如果您有 2 个模型 视频和类别 并且它们彼此之间具有 has and belongs to many 关系 那么当其中一个模型发生更改时 如何执行触摸以使缓存失效 您不能像处理一对多关系那样 触摸 它们 现在 当我更改类别名称时 属于该类