I have a simple model
class Task < ActiveRecord::Base
validates :deadline, :if => :deadline_in_future?
def deadline_in_future?
Date.today < self.deadline
end
end
All seems ok, but when I in my rails console
irb(main):001:0> Task.new
ArgumentError: You need to supply at least one validation
Where is the problem?
You must change validates
to validate
.
You forgot to tell validates
how you want to validate :deadline
. I think you're misunderstanding what :if
does; the :if => :deadline_in_future?
option means:
Validate
:deadline
only if thedeadline_in_future?
method returns a true value.
I suspect that you want to validate that the deadline is in the future:
validate :deadline_in_future?
Further details are available in the Active Record Validations and Callbacks Guide.
It says you do not pass any validations to validates
method. Like validates :presence
, for example. What are you trying to validate?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With