Существует несколько способов проверки уникальных записей, одним из лучших подходов может быть изменение базы данных для установки уникального индекса для электронной почты:
add_index :users, :username, unique: true
(в вашей миграции)
Подход с индексом БД лучше в долгосрочной перспективе (см., Например, this )
Вы также можете проверить его в вашем контроллере before_action:
before_action :validate_email, only: [:sign_up]
...
private
def validate_email
# Or whatever way of sending a message you prefer
flash[:notice] = "A user with this email already exists"
redirect_to root_path if User.where(email: params[:email]).exists?
end
Я бы порекомендовал прочитать далее о проверках Active Record в Rails Guides .