Почему моя проверка не проходит
Я разрабатываю приложение 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 ответ
Решение
Я не уверен, работает ли проверка Integer с помощью регулярных выражений.
Вы могли бы попробовать validates_inclusion_of :size, :in=>[-1,+1,-10,+10,-25,+25], :message=>'size not allowed.'