Ruby on rails 在ruby on rails中使用regexp验证格式

Ruby on rails 在ruby on rails中使用regexp验证格式,ruby-on-rails,regex,validation,format,Ruby On Rails,Regex,Validation,Format,我的要求: 添加验证以确保SITEMAP_URL关键字始终包含在search_engines.URL中,并且其格式应为 类搜索引擎true、:presence=>true 验证:ping\u url,:format=>{:with=>/\=SITEMAP\u url$/},:presence=>true 结束 我写的验证是正确的。验证看起来不错 除非您希望/\=SITEMAP\u URL$/插值,否则它不会 它将只匹配字符串,如 "http://some.com?q=SITEMAP_URL"

我的要求: 添加验证以确保SITEMAP_URL关键字始终包含在search_engines.URL中,并且其格式应为

类搜索引擎true、:presence=>true
验证:ping\u url,:format=>{:with=>/\=SITEMAP\u url$/},:presence=>true
结束

我写的验证是正确的。

验证看起来不错

除非您希望
/\=SITEMAP\u URL$/
插值,否则它不会

它将只匹配字符串,如

  • "http://some.com?q=SITEMAP_URL"
你真的是这个意思吗

如果你有

SITEMAP_URL = "/sitemap.xml"
那么你可以说

SITEMAP_REGEXP = /\=#{SITEMAP_URL}/
但这会将“.”解释为任何字符

因此您需要使用
Regexp.escape

差不多

Regexp.new(Regexp.escape("=#{SITEMAP_URL}")+"$")
你应该做你想做的

Regexp.new(Regexp.escape("=#{SITEMAP_URL}")+"$")