我有一个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(使用前将#替换为@)