验证两个表的唯一性

 文人博客 发布于 2023-02-04 23:23

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

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

我假设这是可能的,但是我在实施方面遇到了麻烦,有人可以帮忙吗?

1 个回答
  • company.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
    

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

    2023-02-04 23:38 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有