ruby-on-rails - Rails 验证正则表达式不工作 : invalid though input correct

标签 ruby-on-rails regex validation

我正在尝试使用正则表达式验证某种日期时间字段。正则表达式是正确的 - 我在 rubular 上测试过它 - 但 Rails 在该字段上抛出错误:无效。

在我的模型中我有:

validates :ddate, presence: true, format: { with: /\A(\d\d\.){2}\d{4} \d\d:\d\d\z/ }

在我的表单中输入:25.12.2015 20:15 并得到验证错误:ddate is invalid

我试着把它分解并开始:

validates :ddate, presence: true, format: { with: /\A\d\d/ }

按预期工作,然后我尝试了:

validates :ddate, presence: true, format: { with: /\A\d\d\./ }

这不再有效了。

任何提示,为什么这不起作用?

我正在使用 Rails 4.2.4 和 Ruby 2.2.1p85。

最佳答案

你正在传递一个字符串,所以改为:

attr_accessor :ddate_string

validates :ddate_string, presence: true, format: { with: /\d{1,2}\.\d{1,2}\.\d{4} \d{1,2}:\d{1,2}/ }

before_save :set_ddate

def set_ddate
  self.ddate = ddate_string
end

您只能对字符串运行正则表达式验证。

关于ruby-on-rails - Rails 验证正则表达式不工作 : invalid though input correct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34827719/

相关文章:

ruby-on-rails - 什么时候需要在 Rails Gemfile 中使用 require?

ruby-on-rails - Docker上的远程Selenium无法正确处理Javascript

javascript - 替换方括号内的文本

regex - 正则表达式捕获和替换可以与 Apache DirectoryMatch 指令一起使用吗?

c# - 遇到数据库错误时防止行更改

ruby-on-rails - 是否仍然推荐使用更多(Rails 的更少 CSS 插件)?

javascript - RequireJs + Rails 4

javascript - 用于从 cli args 中提取 xgettext 函数名称和参数的正则表达式

validation - 本地验证travis.yml文件

c# - Azure Function Http Trigger 验证正文数据