ArgumentError:您需要提供至少一个validation:if

我有一个简单的模型

class Task  :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 

问题出在哪儿?

您忘记告诉validates您要如何validation:deadline 。 我觉得你误解了:if :if => :deadline_in_future? 选项意味着:

validation:deadline仅在deadline_in_future? method返回true值。

我怀疑你想确认截止日期是在未来:

 validate :deadline_in_future? 

“ Active Record Validations and Callbacks Guide”中提供了更多详细信息。

您必须更改validates才能validate

它表示您没有将任何validation传递给validates方法。 像validates :presence一样validates :presence ,例如。 你想validation什么?