Пользовательская проверка времени в Rails работает при создании, но не при редактировании. - PullRequest
0 голосов
/ 26 января 2012

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

class Alarm < ActiveRecord::Base

  validate :alarm_set_in_the_future

  def alarm_set_in_the_future
    if time <= DateTime.current
      errors.add(:alarm, "Please Choose A Future Date & Time")
    end
  end

Это прекрасно работает, и тесты проходят при создании новой записи тревоги.Удивительно ...

Однако, при редактировании Alarm, переменная time устанавливается на следующую дату и время, и я понятия не имею, почему!

2000-01-01 03:28:00 UTC

Следовательно, проверка не проходит.

Где этот параметр времени сбрасывается?Помогите!

1 Ответ

1 голос
/ 26 января 2012

Посмотрите, что отправляется из вашей формы.Кажется маловероятным, что проблема заключается в самой проверке.

Скорее всего, вы получаете поддельные данные из формы при сохранении записи.Какое значение @alarm.time в контроллере перед сохранением?Как выглядит params хеш?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...