Ruby on rails Rails图像URL验证

Ruby on rails Rails图像URL验证,ruby-on-rails,image,validation,url,Ruby On Rails,Image,Validation,Url,假设我在一个表中有记录,每个记录都有一个图标属性,该属性采用以下形式的url: balls/x.png balls/y.png balls/z.png 如何编写验证,确保url以“balls/”开头,以.png、.gif结尾。还是.jpg 我当前的验证仅检查文件扩展名: validates_format_of :icon, :with => %r{\.(gif|jpg|png)$}i, :message => 'must be a URL for GIF, JPG ' + 'o

假设我在一个表中有记录,每个记录都有一个图标属性,该属性采用以下形式的url:

  • balls/x.png
  • balls/y.png
  • balls/z.png
如何编写验证,确保url以“balls/”开头,以.png、.gif结尾。还是.jpg

我当前的验证仅检查文件扩展名:

validates_format_of :icon, :with => %r{\.(gif|jpg|png)$}i, :message => 'must be a URL for GIF, JPG ' + 'or PNG image.'

直接的正则表达式怎么样,比如:

validates_format_of :icon, :with =>  %r{^(balls\/)[A-Za-z]+\.(gif|jpg|png)$}i, :message => 'icon must start with balls'

直接的正则表达式怎么样,比如:

validates_format_of :icon, :with =>  %r{^(balls\/)[A-Za-z]+\.(gif|jpg|png)$}i, :message => 'icon must start with balls'
如何编写验证,确保url以“balls/”开头,以.png、.gif结尾。还是.jpg

这将有助于:

validates_format_of :icon,
  :with    => %r{^balls/.+\.(gif|jpe?g|png)$}i,
  :message => "must start with 'balls/' and have an image extension"
但是您可以在同一字段上进行多个验证。因此,这也会起作用,并且更具可读性:

validates_format_of :icon,
  :with    => %r{^balls/.+}i,
  :message => "must start with 'balls/' and have a filename"

validates_format_of :icon,
  :with    => %r{\.(gif|jpe?g|png)$}i,
  :message => "must have an image extension"
如何编写验证,确保url以“balls/”开头,以.png、.gif结尾。还是.jpg

这将有助于:

validates_format_of :icon,
  :with    => %r{^balls/.+\.(gif|jpe?g|png)$}i,
  :message => "must start with 'balls/' and have an image extension"
但是您可以在同一字段上进行多个验证。因此,这也会起作用,并且更具可读性:

validates_format_of :icon,
  :with    => %r{^balls/.+}i,
  :message => "must start with 'balls/' and have a filename"

validates_format_of :icon,
  :with    => %r{\.(gif|jpe?g|png)$}i,
  :message => "must have an image extension"