2009-05-08 39 views
2

Ich habe diese Aussagen in einem Modell:Ruby on Rails regex

before_save :add_http 

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

ich die Regex in der Konsole überprüft haben, und es scheint richtig zu sein, aber wenn die ‚url‘ gespeichert wird, um die db die " http: // "wurde nicht hinzugefügt. Irgendwelche Ideen?

Antwort

3

nicht sicher, ob dies für Sie wichtig ist oder nicht, aber Ihr Regex mit https-URLs nicht funktionieren. Dies sollte aber funktionieren:

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

Danke, ich dachte darüber nach, aber wollte die Grundlagen zuerst arbeiten. Übrigens, ich habe deinen Blog über das "Pron Star" Fiasko gelesen, schöner Artikel! –

2

Nevermind, es wurde ...

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