我的要求: 要添加验证以确保SITEMAP_URL关键字始终包含在search_engines.url中,并且格式为http://www.example.com/
class SearchEngine < ActiveRecord::Base
validates :name, :ping_url, :uniqueness => true, :presence => true
validates :ping_url, :format => {:with => /\=SITEMAP_URL$/}, :presence => true
end
我写的验证是否正确。
答案 0 :(得分:2)
验证看起来很好。
除非您希望/\=SITEMAP_URL$/
进行插值,否则不会。
它只匹配像;
这样的字符串这真的是你的意思吗?
如果你有
SITEMAP_URL = "/sitemap.xml"
然后你可以说
SITEMAP_REGEXP = /\=#{SITEMAP_URL}/
但这会解释“。”任何角色。
所以你需要使用Regexp.escape
非常
Regexp.new(Regexp.escape("=#{SITEMAP_URL}")+"$")
应该做你想做的事。