Attualmente quando si aggiunge un URL attraverso un modulo sul mio Rails app abbiamo le seguenti before_save
e validation
controlli:Aggiungendo www agli URL del sito web durante la convalida
def smart_add_url_protocol
if self.website?
unless self.website[/\Ahttp:\/\//] || self.website[/\Ahttps:\/\//]
self.website = "http://#{self.website}"
end
end
end
validates_format_of :website, :with => /^((http|https):\/\/)?[a-z0-9]+([-.]{1}[a-z0-9]+).[a-z]{2,5}(:[0-9]{1,5})?(\/.)?$/ix, :multiline => true
Tuttavia, ciò significa che se digito nella campo modulo
testing.com
mi dice che l'URL non è valido e avrei dovuto mettere in
www.testing.com
per accettare l'url
Mi piacerebbe che accetti l'url indipendentemente dal fatto che un utente inserisca www o http.
Devo aggiungere qualcos'altro a smart_add_url_protocol per assicurarmi che venga aggiunto, o si tratta di un problema con la convalida?
Grazie
Grazie - hanno cambiato il codice secondo il vostro parere, ma è ancora a dirmi che il sito non è valida senza la parte www. Devo cambiare qualcosa anche in questa linea? validates_format_of: sito web,: con =>/^ ((http | https): \/\ /)? [a-z0-9] + ([-.] {1} [a-z0-9] +). [ az] {2,5} (: [0-9] {1,5})? (\ /.)? $/ix,: multiline => true – tessad
Rimuovi questa convalida. Non ne hai bisogno con il codice sopra. – dimakura