проверка наличия адреса электронной почты (не может быть пустым) - Ruby on Rails - PullRequest
1 голос
/ 08 июля 2010

Довольно новый во всем этом. У меня есть простая форма для пользователей, чтобы ввести пару частей информации, а затем ввести свой адрес электронной почты и нажать кнопку отправки. Я хочу сделать обязательным, чтобы они нажимали свой адрес электронной почты, чтобы нажать кнопку отправки. Если они не заполняют свой адрес электронной почты, они должны получить сообщение об ошибке в почтовом ящике, в котором говорится, что электронное письмо не может быть пустым. Я знаю, что это очень просто, но мне нужна точная помощь в том, где разместить код. Я занимался этим всю ночь и знаю, что часть кода должна идти в application_controller, а другая - в html-файле, где находится текстовое поле text_mail: Я был бы признателен, если бы кто-то мог четко сказать мне, что необходимо сделать для этого. Спасибо!

Ответы [ 3 ]

3 голосов
/ 08 июля 2010

В Rails 2, который, как я предполагаю, вы используете, валидации идут в модели. Который находится в $ Rails_app_directory / app / model / $ Classname.rb

Чтобы добавить валидации ActiveRecord, вы можете использовать строку

validates_presence_of :email_address

Вам также следует рассмотреть возможность использования Rails для генерации поля подтверждения и фильтрации плохо отформатированных адресов электронной почты. Вы можете выполнить первое с помощью:

validates_confirmation_of :email_address

при этом все, что вам нужно добавить в форму, это текстовое поле для: email_address_confirmation

и последнее с регулярным выражением, таким как:

validates_format_of :email_address, :with => /\A[\w\.%\+\-]+@(?:[A-Z0-9\-]+\.)+(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|jobs|museum)\z/i
3 голосов
/ 08 июля 2010

Это должно идти в вашей модели.Добавьте это:

class Model < ActiveRecord::Base 
 validates_presence_of :email
end 

Проверьте эту ссылку для получения дополнительной информации: http://guides.rails.info/activerecord_validations_callbacks.html#validates-presence-of

0 голосов
/ 08 июля 2010

От snipplr, поместите в вашу модель

validates_format_of     :email,
                        :with       => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i,
                        :message    => 'email must be valid'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...