Почему моя проверка не проходит - PullRequest
2 голосов
/ 05 апреля 2011

Я занимаюсь разработкой приложения Rails 3.

Я хотел бы проверить поле ввода атрибута " size " модели " Cake ", чтобы пользователь мог только вводить + 1, -1, + 10, - 10 и + 25, -25 , больше ничего.

Я использую следующую проверку для проверки "размера":

class Cake < ActiveRecord::Base
  validates_format_of :size, :with => /^[-+]?(1|10|25)$/, :message=>'size not allowed.'
  ...

end

(Атрибут "size" в моей базе данных "cakes" имеет тип " double ".)

В пользовательском интерфейсе я всегда получаю сообщение об ошибке проверки, даже если я ввожу 1, или 10, или 25, или +1, или что-то еще. Почему моя проверка не проходит, даже если значение верное?

1 Ответ

3 голосов
/ 05 апреля 2011

Я не уверен, работает ли проверка целого числа с помощью регулярного выражения.

Вы можете попробовать validates_inclusion_of :size, :in=>[-1,+1,-10,+10,-25,+25], :message=>'size not allowed.'

...