Ruby on rails 验证vs验证的唯一性?

Ruby on rails 验证vs验证的唯一性?,ruby-on-rails,Ruby On Rails,使用 验证:foo,唯一性:true 或 验证:foo的唯一性 我知道这是一个简单的问题,但是 何时以及为什么应该使用一种方法而不是另一种?验证方法是Rails提供的所有默认方法的快捷方式。因此,validates:foo,university:true将在引擎盖下触发uniquenessvidator。可以找到验证的源代码。如图所示,它基本上会触发所传递选项的验证程序,并在传递无效选项时引发错误。 还触发唯一验证程序,与验证相同。它的源代码是 # File activerecord/lib/a

使用

验证:foo,唯一性:true

验证:foo的唯一性

我知道这是一个简单的问题,但是


何时以及为什么应该使用一种方法而不是另一种?

验证方法是Rails提供的所有默认方法的快捷方式。因此,
validates:foo,university:true
将在引擎盖下触发
uniquenessvidator
。可以找到
验证
的源代码。如图所示,它基本上会触发所传递选项的验证程序,并在传递无效选项时引发错误。 还触发
唯一验证程序
,与
验证
相同。它的源代码是

# File activerecord/lib/active_record/validations/uniqueness.rb, line 233
  def validates_uniqueness_of(*attr_names)
    validates_with UniquenessValidator, _merge_attributes(attr_names)
  end
唯一的区别是,使用
验证
的唯一性,我们只能验证唯一性,不能传递其他选项,而
验证
接受多个选项。因此,我们可以使用
validates
进行以下验证:

validates :name, presence: true, uniqueness: true, <some other options>
验证:名称、状态:true、唯一性:true、,

但是同样的情况在
验证
的唯一性时是不可能的。如果你不使用APIdock链接,我会升级它。请改用Rails。哦,我经常想知道为什么有些链接是
api.rubyonrails
,而有些链接是
apidock
。我认为可能有一个网站改造或什么的,但都支持相同的文档!谢谢你的信息。我将更改链接@CAmadorApidoc是一个外部站点,与Rails无关。它曾经非常有用,但直到最近才被保存(非常过时的信息)。一些信息。感谢您的编辑;-)是的,我刚通过那个链接。谢谢发现了一些新的东西。谢谢,现在说得通了。当涉及到验证
的唯一性时,这不允许更新,对吗?所以我需要在::create上指定
?这是正常的工作方式吗?