2009-05-08 8 views
2

Je ces déclarations dans un modèle:Ruby on Rails regex

before_save :add_http 

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

J'ai vérifié la regex dans la console et il semble avoir raison, mais quand le « url » est enregistré à la db la " http: // "n'a pas été ajouté. Des idées?

Répondre

3

Je ne sais pas si cela est important pour vous ou non, mais votre regex ne fonctionnera pas avec les URL https. Cela devrait fonctionner cependant:

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

Merci, j'ai pensé à cela mais je voulais que les bases fonctionnent d'abord. Au fait, j'ai lu votre blog sur le fiasco «pron star», bel article! –

2

Nevermind got it ...

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