Проверка URL изображения Rails - PullRequest
1 голос
/ 11 июля 2011

Допустим, у меня есть записи в таблице, и у каждого есть атрибут значка, который принимает 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.'

Ответы [ 2 ]

6 голосов
/ 11 июля 2011

Как мне написать валидацию, которая гарантирует, что 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"
0 голосов
/ 11 июля 2011

Как насчет прямого регулярного выражения вроде:

validates_format_of :icon, :with =>  %r{^(balls\/)[A-Za-z]+\.(gif|jpg|png)$}i, :message => 'icon must start with balls'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...