Obecnie podczas dodawania adresów URL za pośrednictwem formularza na mojej aplikacji Rails mamy następujące before_save
i validation
sprawdza:Dodawanie www do URL witryny podczas walidacji
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
jednak oznacza to, że jeśli wpisać w pola formularza
testing.com
mówi mi, że adres URL jest nieprawidłowy i będę musiał umieścić w
www.testing.com
, aby zaakceptować adres URL:
Chciałbym, aby zaakceptował adres URL niezależnie od tego, czy użytkownik wejdzie na stronę www czy http.
Czy powinienem dodać coś jeszcze do smart_add_url_protocol, aby upewnić się, że zostało dodane, czy też jest to problem z walidacją?
Dzięki
Dzięki - zmieniłem kod zgodnie z twoją radą, ale wciąż mi mówi, że strona jest nieważna bez strony www. Czy muszę również coś zmienić w tym wierszu? validates_format_of: website,: with =>/^ ((http | https): \/\ /)? [a-z0-9] + ([-.] {1} [a-z0-9] +). [ az] {2,5} (: [0-9] {1,5})? (\ /.)? $/ix,: multiline => true – tessad
Usuń tę walidację. Nie potrzebujesz tego z powyższym kodem. – dimakura