Проверка направляющих для пользовательской электронной почты - только хочет, чтобы это проверило, когда пользователь подписывается или обновляет адрес электронной почты

Я действительно приехал для симпатии Знатока Стандартное Расположение Каталога .

Одна из ключевых идей для меня состоит в том, чтобы иметь два исходных корня - один для производственного кода и один для тестового кода как так:

MyProject/src/main/java/com/acme/Widget.java
MyProject/src/test/java/com/acme/WidgetTest.java

(здесь, и src/main/java и src/test/java являются исходными корнями).

Преимущества:

  • Ваши тесты имеют пакет (или "значение по умолчанию") доступ уровня к Вашим классам под тестом.
  • можно легко упаковать только производственные источники в JAR путем отбрасывания src/test/java как исходный корень.

Одно эмпирическое правило о размещении класса и пакетах:

Вообще говоря, хорошо структурированные проекты будут свободны от круговые зависимости . Изучите, когда они плохи (и когда они не ), и рассмотрите инструмент как JDepend или SonarJ, который поможет Вам устранить их.

15
задан robodisco 4 November 2009 в 22:17
поделиться

3 ответа

Я думаю, что EmFi что-то знает. Но я не думаю, что validates_presence_of: email должен вас сдерживать. Электронное письмо должно всегда присутствовать - если его оставить пустым в форме, этот параметр не повлияет на ваше сохранение пользователя. Если он введен в форму, даже для обновления, он должен иметь email_confirmation для поездки.

Попробуйте это:

validates_presence_of :email
validates_presence_of :email_confirmation, :if => :email_changed?

validates_confirmation_of :email
22
ответ дан 1 December 2019 в 01:17
поделиться

you have two options. one is to use :on. by default, they are set to :on => :save, but you can do something like this this

validates_presence_of :email, :on => :create

or

validates_presence_of :email, :on => :update

the other options is to use :if, and then pass in a method name or a proc. so something like

validates_presence_of :email, :if => :should_validate

or

validates_presence_of :email, :if => Proc.new { |user| user.signup_stage > 2 }

Hope that helps :)

10
ответ дан 1 December 2019 в 01:17
поделиться

Вы хотите использовать предложение: if при проверке, которое использует методы ActiveRecord :: Dirty:

validates_presence_of :email, :if => Proc.new { |user| user.email_changed?}

NB Работает только в Rails 2.1 или новее.

5
ответ дан 1 December 2019 в 01:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: