Как выбрать все уникальные атрибуты - PullRequest
1 голос
/ 26 сентября 2011

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

@uniq_referrals = []
CardReferral.all.select{|a| @uniq_referrals << a.email}
@referral_count = @uniq_referrals.uniq.each{|a|CardReferral.find_by_email(a)}

Но я бы хотел сделать это за один звонок.Это возможно?

Ответы [ 2 ]

2 голосов
/ 26 сентября 2011

Вы можете использовать:

CardReferral.select("distinct(email), other_field_you_need")

, где other_field_you_need это список имен полей, которые вам нужно использовать из объектов, которые вы получаете из ActiveRecord.

Чтобы получить количество уникальныхзапись электронной почты, которую вы можете использовать:

CardReferral.count("distinct(email)")
0 голосов
/ 14 марта 2014

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

@uniq_referrals = []
CardReferral.all.select{|a| @uniq_referrals << a.email}
@referral_count = @uniq_referrals.uniq.each{|a|CardReferral.find_by_email(a)}

Но я бы хотел сделать это за один звонок. Это возможно?

Я думаю, что это поможет вам:

Model.group("email")

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

enter image description here

Пожалуйста, выберите изображение для большего понимания. Если вы еще не могли получить, то я объясню подробно.

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