Xim*_*mik 30 validation ruby-on-rails ruby-on-rails-3.1
我有一个简单的模型
class Task < ActiveRecord::Base
validates :deadline, :if => :deadline_in_future?
def deadline_in_future?
Date.today < self.deadline
end
end
Run Code Online (Sandbox Code Playgroud)
一切似乎都好,但是当我在我的rails控制台时
irb(main):001:0> Task.new
ArgumentError: You need to supply at least one validation
Run Code Online (Sandbox Code Playgroud)
问题出在哪儿?
小智 94
你必须validates改为validate.
mu *_*ort 43
你忘了告诉validates你想要如何验证:deadline.我觉得你误解了是什么:if意思; 该:if => :deadline_in_future?选项意味着:
:deadline仅在deadline_in_future?方法返回true值时才进行验证.
我怀疑你想确认截止日期是在未来:
validate :deadline_in_future?
Run Code Online (Sandbox Code Playgroud)
" Active Record Validations and Callbacks Guide"中提供了更多详细信息.