2011-12-05 9 views
0

私の要件:http://www.example.com/は、Ruby on Railsの中で正規表現と形式を検証

class SearchEngine < ActiveRecord::Base 

    validates :name, :ping_url, :uniqueness => true, :presence => true 
    validates :ping_url, :format => {:with => /\=SITEMAP_URL$/}, :presence => true 

end 

が検証です がSITEMAP_URLキーワードは常にsearch_engines.urlに含まれていることを確認する検証を追加すると、それは形式である必要があります私は書かれている正しいです。

答えて

2

妥当性が確認されます。あなたは/\=SITEMAP_URL$/が、それはないでしょう補間する予想される場合を除き

これは、次のような文字列にのみ一致します。

  • "http://some.com?q=SITEMAP_URLは"

は本当にあなたが何を意味するかということですか?

あなたは

SITEMAP_URL = "/sitemap.xml" 

を持っているなら、あなたは

SITEMAP_REGEXP = /\=#{SITEMAP_URL}/ 

を言うことができる。しかし、これは解釈します ""任意の文字として。

だからあなたはあなたが欲しいものを行う必要がありますRegexp.escape

かなりの

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

を使用する必要があります。

関連する問題