2011-01-08 2 views
0

Ошибка при получении простой проверки для работы в Rails 3, хотя the regex works fine. Даже с допустимым форматом проверка не выполняется.Rails 3 validates_format_of не работает для простого регулярного выражения

Модель:

validates_format_of :start, 
    with: /\A[0-9]{2}\/[0-9]{2}\/[0-9]{4}\z/, 
    message: "Invalid date format" 

Assertion:

Event.new(start: "12/10/2010").valid?.should eq(true) 

Это утверждение не удается, потому что valid? возвращается false.

Что мне не хватает?

+1

Возможно, что-то еще в новом событии вызывает недопустимое событие? – Zabba

+0

Является ли это YAML или нормальным рубином? Если ямль, что делает запятые в конце строки? – Rekin

+0

@Rekin: это Ruby 1.9 Hash Синтаксис: http://blog.peepcode.com/tutorials/2011/rip-ruby-hash-rocket-syntax – iain

ответ

3

Регулярное выражение терпит неудачу, потому start является Date типа, а когда объект создается с помощью строки, ActiveRecord автоматически преобразует его в Date. К тому моменту, когда валидатор получает его, он больше не является строкой, поэтому нет совпадения.

Смежные вопросы