2012-12-09 9 views
40

Mam model użytkownika w aplikacji Rails, która ma pole e-mail. Czy istnieje domyślna weryfikacja, która zapewni, że adres e-mail ma poprawny format? Jeśli nie, to w jaki sposób powinienem zatwierdzić to pole?Jak można sprawdzić format pola e-mail w ActiveRecord?

+0

przez ' aktualny adres e-mail "Masz na myśli e-mail naprawdę istnieje lub pasuje do formatu e-mail? – nurettin

+12

To dziwne, że to było zamknięte. To może nie być strasznie specyficzne, ale widzę tutaj prawdziwe pytanie. – sscirrus

+0

@sscirrus Cóż, aby być całkowicie na drutach, właściwie nie zadawał pytania. Poza tym nie jest dobrym zachowaniem po prostu prosić o materiały informacyjne na temat SO. Bardziej stosownym pytaniem byłoby "w jaki sposób chciałbyś napisać kod, który ma [pożądany rezultat]?" – anthropomorphic

Odpowiedz

96

Dodaj w gemfile:

gem 'validates_email_format_of' 

aw modelu:

validates :email, email_format: { message: "doesn't look like an email address" } 

Lub jeśli nie chcesz używać gem, należy użyć wyrażenia regularnego:

validates_format_of :email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i 
+1

Dobra odpowiedź, dziękuję –

+1

Podane wyrażenie regularne nie działa:/ – Paladini

+1

Użyj tylko:' with:/@/'https: //davidcel.is/posts/stop-validating-email-addresses-with-regex/ –

Powiązane problemy