Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用Ruby正则表达式验证数字_Ruby On Rails_Ruby_Regex_Validation - Fatal编程技术网

Ruby on rails 使用Ruby正则表达式验证数字

Ruby on rails 使用Ruby正则表达式验证数字,ruby-on-rails,ruby,regex,validation,Ruby On Rails,Ruby,Regex,Validation,在Rails项目中工作时,需要我验证数字(表示一个月中的一天)为1或15。我在模型顶部放置了以下验证: validates :deposit_date, presence: true, format: { with: /\A1(5)?\z/ } 当我使用irb或在线测试程序时,正则表达式按预期工作,但在Rails应用程序中验证失败。数字是作为字符串传递的,所以我认为这不是类型问题 更新:谢谢你这么快就给出了所有相关的答案。我能够追踪到这个问题。。。数据库中的数据已经无效,导致单独保存!调用失败

在Rails项目中工作时,需要我验证数字(表示一个月中的一天)为1或15。我在模型顶部放置了以下验证:

validates :deposit_date, presence: true, format: { with: /\A1(5)?\z/ }
当我使用irb或在线测试程序时,正则表达式按预期工作,但在Rails应用程序中验证失败。数字是作为字符串传递的,所以我认为这不是类型问题

更新:谢谢你这么快就给出了所有相关的答案。我能够追踪到这个问题。。。数据库中的数据已经无效,导致单独保存!调用失败;)

试试这个
验证:存款日期,包含:{in:[1,15]}

尝试删除5的捕获

{ with: /\A15?\z/ }
使用


\z
将匹配字符串的结尾。在您的情况下,您只需要匹配日期(字符串的开头)

您确定
deposit\u date
是一个仅表示月份日期的字符串,而不是
date
类型的类,或者至少是一个表示日期的字符串,例如
'2014-03-24'
?这两个都与正则表达式不匹配。是的,它是数字1或15。。这些值来自HTML选择字段。
validates :deposit_date, presence: true, format: { with: /\A15?/ }