2013-11-02 3 views
1

В моем приложении Rails 4 у ​​меня есть поле электронной почты. Моя модель гарантирует, что дублирующие значения сохраняются в памяти, используя следующие:Модель Rails - Подтвердите адрес электронной почты

validates :email, presence: true, uniqueness: { case_sensitive: false } 

Это хорошо служил мне, пока я не беспокоился подтверждения адреса электронной почты, но теперь я хочу, чтобы подтвердить их, прежде чем они смогут войти в систему. Это означает, что я хочу только подтвердить уникальность, если верно другое поле confirmed.

Есть ли встроенный способ справиться с этим вообще или это будет мое собственное правило проверки, которое требуется?

+1

Я бы порекомендовал использовать драгоценный камень, как «изобретать», чтобы решить всю вашу логику auth. – Mattherick

+1

Довольно счастливо сделать свое собственное спасибо – tommyd456

+1

Любые конкретные причины, по которым вы переворачиваете свой собственный auth? – jcm

ответ

1

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

validates_uniqueness_of :email, conditions: -> { where(confirmed: true) } 

Тогда это будет только обеспечивающей уникальность против подтвержденных записей.

Смежные вопросы