validates_format_of :start_time, :with => /\A\d{2}:{1}\d{2}\z/
这应该以{{1}}的格式验证开始时间,但无论我抛出什么,它都会被验证为false,因此不允许我更新属性。
我在这里缺少什么?
不知何故,上面的行也禁止我更新其他属性。删除该行可以解决所有问题,并让我再次更新任何属性。
更新属性的代码是:
00:00
进一步检查后,参数包括:
if current_restaurant.update(params.require(:restaurant).permit(:start_time))
//success handling
else
//failure handling
end
答案 0 :(得分:3)
我认为我的问题中的关键问题是:
不知何故,上面的行也禁止我更新其他属性。删除该行可以解决所有问题,并让我再次更新任何属性。
因此,我尝试将空白与正则表达式结合使用,这恰好解决了我的问题!
解决方案:
validates_format_of :start_time, :with => /\A\d{2}:{1}\d{2}\z/ ,
:allow_blank => true
编辑: time_validation的正则表达式更好:
/\A([01][0-9]|2[0-3]):[0-5][0-9]\z/