Rails разрабатывает уникальную электронную почту

#ruby-on-rails #email #devise

#ruby-on-rails #Адрес электронной почты #разработать

Вопрос:

Есть ли встроенный метод в devise, с помощью которого я могу проверить, является ли данное имя пользователя или адрес электронной почты уникальным для всех существующих имен пользователей и электронных писем. (Скажем, если я не хочу проверять при создании модели) я могу просто сказать

 if user.is_unique?
     execute some code here
end
 

Я использую rails 3, и в моем gemfile просто написано gem ‘devise’ (поэтому он становится самым последним), если эта информация важна

Ответ №1:

Я думаю, что такого метода нет, но вы можете добавить его самостоятельно в User модель. Попробуйте это:

 def is_email_unique?
  !(User.all - [self]).map(amp;:email).include?(self.email)
end
 

Ответ №2:

Вы могли бы сделать это в своей пользовательской модели:

 def is_unique?
  !User.exists?(:email => email) amp;amp; !User.exists?(:username => username)
end