我讀的書「敏捷Web開發使用Rails」,我在哪裏去了通過驗證的部分,如下:軌驗證allow_blank和存在
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驗證正在做什麼?爲什麼我們不驗證:價格也存在?
http://stackoverflow.com/questions/14488465/understanding-rails-validation-what-does-allow-blank-do總之,它與唯一性約束有關 –
圖像url沒有唯一性約束。正則表達式確保圖像的URL是'.gif','.jpg'或'.png'格式。 'allow_blank'告訴rails這個字段可以是空白的,也可以是有效格式的圖像字符串。如果允許空白未通過,則所有空白圖像url字段都會失敗,因爲它們不符合正則表達式格式。 – miler350