- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我想弄清楚以下两者之间的区别:
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/
我正在尝试在 RoR 中构建自己的应用程序。 您如何看待下面的代码。 class Book < ApplicationRecord validates :price, presence:
我根据它们的 active_state 验证 Realty 对象,所以如果它是 pending,多个字段可以是 blank。 with_options :if => Proc.new { |a| a.
我正在阅读“使用 Rails 进行敏捷 Web 开发”这本书,并且我正在他们进行验证的部分,如下所示: class Product < ActiveRecord::Base validates :
我对 Rails 还很陌生,发现了一个小片段来逐步验证存在性和唯一性:首先检查存在性,然后检查唯一性。 validates :email, :presence => true, :allow_blan
我有一个有效的唯一性测试: it { should validate_uniqueness_of(:name).case_insensitive } 然而,当我尝试对名称进行类似的测试时,它失败了 i
我想弄清楚以下两者之间的区别: validates :foo, presence: false validates :foo, allow_blank: true 当我使用 presence: fal
我正在尝试将表单中的时间字段设为可选。我这样做: 然而,当它被提交时,由于 time_select 会自动提交默认日期信息,这就是 params 的样子: end_time(1i): '2000'
我在测试模型验证时遇到问题,allow_blank。我对 RSpec 比较陌生,但在这种情况下,我认为问题在于验证。 这是我的模型: class ComicBook to be valid, but
我是一名优秀的程序员,十分优秀!