ArgumentError: вам нужно предоставить хотя бы одну проверку: if
У меня есть простая модель
class Task < ActiveRecord::Base
validates :deadline, :if => :deadline_in_future?
def deadline_in_future?
Date.today < self.deadline
end
end
Все выглядит нормально, но когда я в консоли rails
irb(main):001:0> Task.new
ArgumentError: You need to supply at least one validation
Где проблема?
Ответы
Ответ 1
Вы забыли сообщить validates
, как вы хотите проверить :deadline
. Я думаю, вы не понимаете, что делает :if
; параметр :if => :deadline_in_future?
означает:
Подтвердить :deadline
, только если метод deadline_in_future?
возвращает истинное значение.
Я подозреваю, что вы хотите подтвердить, что крайний срок в будущем:
validate :deadline_in_future?
Более подробную информацию можно найти в Руководстве по проверке активных записей и обратным вызовам.
Ответ 2
Вы должны изменить validates
на validate
.
Ответ 3
В нем говорится, что вы не проходите никаких проверок методу validates
. Например, validates :presence
. Что вы пытаетесь проверить?