У меня есть модель пользователя в приложении Rails с полем электронной почты. Существует ли проверка по умолчанию, которая гарантирует, что электронная почта имеет правильный формат? Если нет, как мне проверить это поле?
Как можно проверить формат поля электронной почты в ActiveRecord?
Ответы (1)
Добавьте в свой gemfile:
gem 'validates_email_format_of'
и в вашей модели:
validates :email, email_format: { message: "doesn't look like an email address" }
Или, если вы не хотите использовать драгоценный камень, используйте регулярное выражение:
validates_format_of :email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i
person
Jonathan Vukovich-Tribouharet
schedule
09.12.2012
Предоставленное вами регулярное выражение, похоже, не работает:/
- person Paladini; 15.05.2016
Используйте только:
with: /@/
davidcel.is/posts/stop-validating-email -адреса-с-регулярным выражением
- person Bruno Casali; 27.05.2016
valid email address
вы имеете в виду, что электронная почта действительно существует или она соответствует формату электронной почты? - person nurettin   schedule 09.12.2012closed as not a real question
. Я согласен с пятью людьми, которые решили это сделать, потому что я чувствую, что неправильно сформулированные вопросы могут привести только к неправильно сформулированным ответам, ни один из которых не полезен для этого сообщества. - person Michael Dorst   schedule 25.06.2013validates :email, format: { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i, on: :create }
- person Cyzanfar   schedule 12.10.2017