gpt4 book ai didi

ruby-on-rails - Rails 中存在和 allow_blank 验证器之间的区别?

转载 作者:数据小太阳 更新时间:2023-10-29 07:15:08 24 4
gpt4 key购买 nike

我想弄清楚以下两者之间的区别:

validates :foo, presence: false
validates :foo, allow_blank: true

当我使用 presence: false 验证失败但当我使用 allow_blank: true 时它不会。根据文档 http://apidock.com/rails/ActiveRecord/Validations/ClassMethods/validates_presence_of使用空白?方法。有人可以解释一下区别吗?

最佳答案

第一种情况:

validates :foo, presence: false

它根本不验证 :foo 的存在。

nil、''、'anything' 都是有效的。

第二种情况::allow_blank 是一个选项,不是验证器。

如果属性为空,它会跳过验证(更多 here)。

如果你想知道它是如何工作的,你可以看code here .

在调用选定的验证器之前,它会检查属性是否为空,如果为空则跳过验证。

它作为验证器工作的唯一原因是源代码的编写方式。

Rails 的团队可以随时更改代码并 :allow_blank 停止作为验证器工作。

关于ruby-on-rails - Rails 中存在和 allow_blank 验证器之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29797691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com