我有一个自定义验证方法,可确保警报只能在将来设置..
class Alarm < ActiveRecord::Base
validate :alarm_set_in_the_future
def alarm_set_in_the_future
if time <= DateTime.current
errors.add(:alarm, "Please Choose A Future Date & Time")
end
end
这很有效,测试在创建新的警报记录时传递。真棒...
但是,编辑警报时,time
变量设置为以下日期时间,我不明白为什么!
2000-01-01 03:28:00 UTC
因此,验证失败。
该时间参数何时重置?救命啊!
答案 0 :(得分:1)
查看表单中提交的内容。这个问题似乎不太可能出现在验证本身。
最有可能的是,在保存记录时,您从表单中获取了一些虚假数据。保存之前控制器中@alarm.time
的值是多少? params
哈希是什么样的?