Rails / Ruby. Поиск двойных писем - PullRequest
0 голосов
/ 12 августа 2011

Я разрабатываю API в Rails 3. В последнее время я видел, как некоторые учетные записи пользователей удваиваются.Я не уверен, сколько, поэтому мне нужен способ, чтобы узнать, какие учетные записи, которые являются двойными.

Есть ли способ, в ruby, для поиска по всей базе данных и получить те учетные записи пользователей, которые получили тот же адрес электронной почты(следовательно, двойной)?

Благодарен за все ввод!

Ответы [ 2 ]

1 голос
/ 12 августа 2011

Просто откройте консоль Rails (rails c) и введите что-то вроде этого:

Account.group(:email).having('count_all > 1').count

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

=> #<OrderedHash {"billyjoe@example.com"=>2, "johndoe@example.com"=>2}>

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

Account.where(:email => "billyjoe@example.com")

Чтобы вывести их все в консоль, вы можете объединить оба из них так:

email_hash = Account.group(:email).having('count_all > 1').count
email_hash.each do |email, count|
  Account.where(:email => email).each do |account|
    p account
  end
end
0 голосов
/ 12 августа 2011

Я думаю, что если вы попытаетесь использовать (например):

UserAccount.all.group_by(&:email_address).each do |email, record|
 #you will get a set of records grouped by email address
end

, это поможет вам (Вы не написали подробное описание своих моделей, но если думаете, что получите подсказку)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...