Я надеюсь, что моя неопытность с Rails - причина, по которой никто другой не испытывает эту проблему, и что есть простой ответ. На данный момент, хотя я в тупик. Быстро и грязно то, что у меня есть модель, которая представляет собой ежедневный график (время открытия и закрытия по дате). Когда вы ищете способ проверки этих атрибутов datetime, я наткнулся на несколько потоков здесь, которые предложили использовать камень validates_timeliness, который я сделал. Я написал несколько простых модульных тестов, чтобы проверить правила, которые я хотел, чтобы мой объект придерживался, и, хотя новая проверка, похоже, работает, она не помещает ничего в коллекцию ошибок для объекта ActiveModel.Рельсы: проверка даты с своевременностью, но без сообщений об ошибках
Модель Отрывок:
class OverrideSchedule < ActiveRecord::Base
validates :close, :open, :schedule_id, presence: true
validates_datetime :open, :after => lambda { DateTime.now }, :after_message => "must be a future date/time"
validates_datetime :close, :after => :open, :after_message => "must be after the open date/time"
attr_accessible :close, :open, :schedule_id
end
Unit Test сниппет:
test "open time must be in the future" do
assert past_override_schedule.invalid? #<--- This assert succeeds
assert past_override_schedule.errors[:open].any? #<--- This assert fails
end
test "close time must be after open time" do
assert close_before_open_override_schedule.invalid? #<--- This assert succeeds
assert close_before_open_override_schedule.errors[:close].any? #<--- This assert fails
end
Я проверил коллекцию .errors с Записывает моих тестов для ЛЮБЫХ ключей и для размера. Не было ключей, и размер был всегда 0. Я пропустил что-то простое в синтаксисе моих утверждений о проверке? Является ли это нормальным, ожидаемым поведением от драгоценности с своевременностью? Я ценю любой вклад, который у вас может быть.