gpt4 book ai didi

ruby-on-rails - rails 验证 allow_blank 和存在

转载 作者:行者123 更新时间:2023-12-04 06:30:58 25 4
gpt4 key购买 nike

我正在阅读“使用 Rails 进行敏捷 Web 开发”这本书,并且我正在他们进行验证的部分,如下所示:

class Product < ActiveRecord::Base
validates :description, :title, :image_url, presence: true
validates :price, numericality: {greater_than_or_equal_to: 0.01}
validates :title, uniqueness: true
validates :image_url, allow_blank: true, format: {
with: %r{\.(gif|jpg|png)\z}i,
message: 'Must include an image file extension'
}
end

我不明白的是,我们将 image_url、allow_blank 设置为 true,但是我们必须验证 image_url 是否存在?乍一看,这对我来说似乎是矛盾的,但我确信这是由于缺乏了解。

allow_blank 验证在做什么?为什么我们不验证 :price 是否也存在?

最佳答案

我明白你为什么对此感到困惑——不是很清楚! allow_blank: true的含义是如果 image_url为空白,则 format验证器将不会运行。 presence验证器仍然会运行,因为它的声明没有 allow_blank选项。

本书这样做的原因是为了避免在用户将该字段留空时向用户显示 2 条验证消息。您真的不希望用户看到“图像 URL 不能为空;图像 URL 必须包含图像文件扩展名”。最好只显示一条关于它是空白的消息。换句话说,我们只想在需要验证的情况下运行格式验证器。

关于ruby-on-rails - rails 验证 allow_blank 和存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36758372/

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