ruby-on-rails – rails模型验证跳过和订单
发布时间:2020-12-17 01:57:37 所属栏目:百科 来源:网络整理
导读:有什么办法可以让我的rails模型验证按特定顺序执行,如果不满足以前的验证,则跳过某些验证. 例如:我有2个输入字段start_date和end_date.我的模型中有两个验证方法 其中一个检查日期小于“12/31 /#{Date.today.year 1}” def end_date_in_range if self.end_d
有什么办法可以让我的rails模型验证按特定顺序执行,如果不满足以前的验证,则跳过某些验证.
例如:我有2个输入字段start_date和end_date.我的模型中有两个验证方法 其中一个检查日期小于“12/31 /#{Date.today.year 1}” def end_date_in_range if self.end_date errors.add_to_base("Enter a date before #{Date.today.year + 1}") if self.end_date > Date.parse("12/31/#{Date.today.year + 1}") end end 我有另一个验证,它会逐步完成从开始日期到结束日期的日期 def (self.start_date.to_date .. self.end_date.to_date).inject(0) { |sum,n| ... } end 现在,如果用户输入end_date(如12/31/20101),则第一次验证失败,但看起来要么继续检查下一次验证,要么先执行第二次验证,并且两种情况都会在处理此请求时挂起我的应用程序.我希望它检查第一次验证并将错误返回给用户,而不是逐步完成第二次验证中的日期. 谢谢, 解决方法
使用elsif
def end_date_in_range if self.end_date errors.add_to_base("Enter a date before #{Date.today.year + 1}") if self.end_date > Date.parse("12/31/#{Date.today.year + 1}") elsif #second validation test end end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |