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上指定?这是正常的工作方式吗?