我是Rails的新手,请原谅这个问题。我最近遇到了一个问题,如果有人能帮助找到合适的解决方案,我将不胜感激。
我想将此自定义方法添加到我的验证中。一旦用户提交了超过结束日期的开始日期,它就会引发错误
class Request < ActiveRecord::Base
validates :start_date, :to_date, presence: true
validates :checkin_date_cannot_be_in_the_past
def checkin_date_cannot_be_in_the_past
if :date > :todate
errors.add(:date, "can't be in the past")
end
end
不幸的是,这个自定义方法对我不起作用,如Active Record Validations文档中所述,并在我的控制器中引发错误(语法错误,意外的输入结束,期望keyword_end):
def new
@request = Request.new
end
花了一些时间研究后,我找不到合适的解决方案,所以我希望也许有人可以帮忙吗?
干杯
罗布
答案 0 :(得分:2)
这应该验证调用自定义验证不验证
class Request < ActiveRecord::Base
validates :start_date, :to_date, presence: true
validate :checkin_date_cannot_be_in_the_past
def checkin_date_cannot_be_in_the_past
errors.add(:date, "can't be in the past") if date > todate
end
end