如何验证URL在Rails中必须是.gif,.jpg或.png?

时间:2015-07-19 21:23:43

标签: ruby-on-rails ruby

以下代码用于验证image_url是否以.gif,.jpg或.png结尾。但是,我不确定我是否理解这段代码"%r{\.(gif|jpg|png)\Z}i"如何验证格式。

# Sample Code:
class Product < ActiveRecord::Base
    validates :title, :description, :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 be a URL for GIF, JPG or PNG image.'
    }
end

1 个答案:

答案 0 :(得分:0)

首先应该改变

 validates :image_url, allow_blank: true, format: { with: %r{.(gif|jpg|png)\Z}i, message: 'must be a URL for GIF, JPG or PNG image.' }

我认为如果您的图像是该字段,则应该执行此操作

 validates :image, allow_blank: true, format: { with: %r{.(gif|jpg|png)\Z}i, message: 'must be a URL for GIF, JPG or PNG image.' }

如果是image_url。那你绝对是对的。

它的工作原理是它将文件的结尾(格式)检查为gif,jpg或png。如果您的文件没有这些扩展名,它就无法使用。

请点击此链接:

Rails how to validate file format?