验证两个表的唯一性

2024-02-01

我有一个Company and Archive具有相同表结构的模型。两种型号都有一个validates :name, :uniqueness => true验证。

在 company.rb 文件中,我在设置自定义验证时遇到问题,当我将记录添加到Company数据库它还检查Archive模型(这样,如果存档模型中具有该名称的记录已存在,则不会将其添加到Company table).

我假设这是可以做到的,但我在实施时遇到困难,有人可以帮忙吗?


公司.rb

validates :name, uniqueness: true

validate :unique_name

def unique_name
  self.errors.add(:name, 'is already taken') if Archive.where(name: self.name).exists?
end

重要的是要记住,这种代码级别的唯一约束可能无法在并行请求之间的竞争条件下起作用,除非可以在数据库级别上以某种方式完成此操作。

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

验证两个表的唯一性 的相关文章

随机推荐

  • SQL 计数日期范围

    我正在尝试查询 SQL 数据库以获取每个客户在特定日期范围内发出的订单数 我有一个订单列表如下 CustomerName ClientID DateOrdered Customer No 2 10 2011 11 25 Customer N
  • 如何在 OSX 10.9 上安装 gdb

    如何在 OSX 10 9 上安装 gdb 我尝试使用 macports port install gdb Password gt Updating database of binaries 100 0 gt Scanning binarie
  • Android MotionEvent.getActionIndex() 和 MultiTouch

    我试图在事件 MotionEvent ACTION MOVE 发生时获取指针 id 我通过调用 event getActionIndex 来做到这一点 但对于第二个 第三个 第四个和第五个手指 它总是返回 0 我在 Galaxy S I90
  • 当经度 > 90 时,Python 纬度/经度中点计算给出错误结果

    当给定两端点的纬度和经度时 我有一个短函数来计算线的中点的问题 简单来说就是当经度大于 90度或小于90度时都能正常工作 对于地球的另一半 它提供了一个有点随机的结果 该代码是 javascript 的 python 转换 位于http w
  • 通过 awk 将频率(出现次数)添加到我的文本表中

    给定这个输入表 pac1 xxx pac1 yyy pac1 zzz pac2 xxx pac2 uuu pac3 zzz pac3 uuu pac4 zzz 我需要将频率添加到第三列 如下所示 pac1 xxx 2 3 pac1 yyy
  • 程序接收到信号SIGPIPE,管道损坏

    我写了一个基于posix套接字的客户端程序 该程序创建多个线程并且将锁定服务器 但是在 gdb 调试期间 程序给出了一个信息 错误 gdb n Program received signal SIGPIPE Broken pipe Swit
  • 日历 - 获取上个月的最后一天

    我想获取上个月的最后一天 但这似乎不起作用 Calendar cal Calendar getInstance Integer lastDay cal getInstance getActualMaximum cal DAY OF MONT
  • 如何对多个实体使用单个 JPA 规范类和方法

    我正在创建一个 Spring Boot 应用程序 其中包含产品 类别 机械 使用位置等实体 所有这些实体的共同点是它们都有一个名为 name 的 String 属性 并且可以使用 name 从 UI 中过滤 我已经编写了一个使用名称进行过滤
  • Angular - 在服务和组件中使用管道

    在 AngularJS 中 我可以使用类似于以下语法的服务和控制器内部的过滤器 管道 filter date myDate yyyy MM dd 是否可以在 Angular 中这样的服务 组件中使用管道 像在 Angular 中一样 您可以
  • 需要一些帮助来理解核心数据中的瞬态属性

    我阅读了有关瞬态属性的文档 但我无法真正理解它们的用途 如果我有这样的 NSManagedObject 自定义子类 有人可以告诉我拥有和不拥有瞬态属性之间的区别吗 interface Board NSManagedObject NSMuta
  • 在 Java 11 上编译 Android 数据绑定的 JAXB 依赖项放在哪里?

    我正在使用 Android 数据绑定 虽然事情很简单 但运行得很好 但是 一旦我添加了BindingAdapter https developer android com reference android databinding Bind
  • 在 SQL Server 中使用开始/结束块和 Go 关键字?

    何时使用该指南有哪些指导原则BEGIN and ENDSQL Server 中的关键字 另外 到底是什么GO关键字做什么 GO 就像脚本的结尾 您可以有多个 CREATE TABLE 语句 并用 GO 分隔 这是一种将脚本的一部分与另一部分
  • 聚集索引列上的非聚集索引可以提高性能吗?

    在SQL Server 2005中 查询分析器多次告诉我在已经有聚集索引的表的主ID列上创建非聚集索引 遵循此建议后 查询执行计划报告查询应该更快 为什么同一列 具有相同排序顺序 上的非聚集索引比聚集索引更快 聚集索引包含表的所有数据 而非
  • 探测扩展时出现 GET net::ERR_FAILED 错误

    有一个特定的 Chrome 扩展程序 我想从中获取一个 PNG 文件XMLHttpRequest 如果启用了扩展 我想将 load 写入控制台 如果禁用扩展 我想将 error 写入控制台 它工作正常 但如果禁用扩展程序 Chrome 会在
  • 列出 GCP 帐户/组织的所有用户

    我在 GCP 中有一个组织 其中有多个项目 有没有办法列出所有项目用户及其角色 而不必逐个项目访问项目 我正在使用gcloud projects get iam policy PROJECTNAME 但列出单个项目的用户 我有几百个 Tha
  • Javascript:无法将 href 添加到列表项

    我正在尝试将新项目添加到列表项目中 但下面的代码没有将超链接添加到我想要的列表项 有人可以告诉我出了什么问题吗 HTML div ul li Ut enim ad minim veniam li li Excepteur sint occa
  • “Angular cdk Drag drop”用于将列表中的项目拖放到容器中(无序)

    我知道 cdk 拖放可以很好地处理列表 并且有很多示例 但我想做的是 一侧是列表 另一侧是容器 容器中的物品应该位于容器中的任何位置 并且可以由 x 和 y 轴固定 因此 当从列表中拖放到容器中的某个 x y 处时 该项目应保持该位置 请帮
  • ASP MVC5 身份用户抽象

    我想使用默认的 Identity 2 提供程序构建 N 轮胎 Web 应用程序 因此 我的数据层包含带有模型定义的纯 C 类 没有任何外部依赖性 但如果不添加 AspNet Identity 引用 就不可能将某些类链接到我的应用程序用户 我
  • 如何获取 iOS 框架测试目标并在虚拟应用程序中运行它?

    所以我遇到了一个问题 我的框架需要访问KeyChain 很好 但是在模拟器中运行时似乎失败了 挖掘它似乎是一个已知的问题xctest在这里做错事了 公平地说 错误是会发生的 在 Apple 开发者论坛中 对此进行了讨论 Right 这是库测
  • 验证两个表的唯一性

    我有一个Company and Archive具有相同表结构的模型 两种型号都有一个validates name uniqueness gt true验证 在 company rb 文件中 我在设置自定义验证时遇到问题 当我将记录添加到Co