2009-05-08 5 views
2

私はモデルでこれらのステートメントがあります。私は、コンソールでの正規表現をチェックしたルビーon Railsの正規表現

before_save :add_http 

protected 
def add_http 
    if (/^http\:\/\/.+$/.match(url)) == nil 
    str = "http://" + url 
    url = str 
    end 
end 

をし、正しいように見えるが、「URLを」に保存されますときデシベル」 http:// "が追加されていません。何か案は?

答えて

3

これが問題になるかどうかが、あなたの正規表現がhttpsのURLでは動作しません場合はわかりません。これはうまくいくはずです:

def add_http 
    self.url += "http://" if self.url.match(/^https?\:\/\/.+$/).nil? 
end 
+0

ありがとう、私はそれについて考えましたが、最初に基本を取りたいと思っていました。ちなみに、私はあなたのブログ、「星の星」の失敗、素敵な記事を読んでいます! –

2

ネヴァーマインド、...それを得た

protected 
def add_http 
    if (/^http\:\/\/.+$/.match(url)) == nil 
    str = "http://" + url 
    self.url = str 
    end 
end