проверка в рельсах с двумя атрибутами даты - PullRequest
2 голосов
/ 04 января 2012

, поэтому у меня есть модель с двумя атрибутами даты

  # migration
  t.date :valid_from
  t.date :valid_until

это необязательно, и вы сможете определить только valid_from или valid_until, но если обе даты заполнены, я хочу (изконечно), что valid_from раньше, чем valid_until.

лучшее место, чтобы проверить это, находится внутри модели с валидатором, не так ли?я думаю, что контроллер не будет лучшим местом для этого.

как это можно сделать с помощью валидатора внутри моей модели?Я попробовал несколько вещей без удачи.

Ответы [ 2 ]

3 голосов
/ 04 января 2012

Вы можете использовать пользовательский валидатор:

validate :valid_date_range_required

def valid_date_range_required
  if (valid_from && valid_until) && (valid_until < valid_from)
    errors.add(:valid_until, "must be later than valid_from")
  end
end
0 голосов
/ 04 января 2012

Если вам нужно проверить множество дат, вы можете добавить валидатор даты gem! Это дает вам хороший синтаксис и, вероятно, всю необходимую вам гибкость.

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