【问题标题】:Ruby on Rails Validation UniquenessRuby on Rails 验证唯一性
【发布时间】:2017-11-03 11:53:29
【问题描述】:

我正在我的 ruby​​ on rails 任务中工作,该任务将允许用户输入他们的名字、中间名和姓氏。现在我想使用唯一性来验证它们中的每一个。当然,如果名字、中间名和姓氏已经存在,则无法创建。但是,如果名字是数据库中唯一具有和现有匹配的名字,并且中间名和姓氏不同,则应该创建它。另一个例子是,如果只有中间名在数据库中有一个现有的匹配项,而其他两个不同。问题是,如果我使用,验证:first_name,:middle_name,:last_name,uniqueness:true,它不会涵盖上述条件。请帮帮我

【问题讨论】:

  • 名称不是唯一的,因此您正试图在您的数据库中建立一个错误的假设。

标签: ruby-on-rails


【解决方案1】:

你要找的是:scope关键字

试试

validates :first_name, uniqueness: { scope: [:last_name, :middle_name] }

并参考documentation

【讨论】:

  • 那是什么条件?如果名字是数据库中唯一具有和现有匹配的名字并且中间名和姓氏不同?
  • 它应该双向工作。这是失败的条件first_name == last_name == middle_name
猜你喜欢
  • 2013-02-03
  • 1970-01-01
  • 1970-01-01
  • 2021-07-04
  • 2018-06-24
  • 2010-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多