我想查找具有唯一电子邮件地址的所有记录。我正在尝试执行此操作:
@uniq_referrals = []
CardReferral.all.select{|a| @uniq_referrals << a.email}
@referral_count = @uniq_referrals.uniq.each{|a|CardReferral.find_by_email(a)}
但我想一次性完成。这可能吗?
答案 0 :(得分:2)
您可以使用:
CardReferral.select("distinct(email), other_field_you_need")
其中other_field_you_need
是您需要从ActiveRecord获取的对象中使用的字段名称列表。
要获取您可以使用的唯一电子邮件记录的计数:
CardReferral.count("distinct(email)")
答案 1 :(得分:0)
我想查找具有唯一电子邮件地址的所有记录。我正在尝试执行此操作:
@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")
当我们通过电子邮件ID对所有记录进行分组时,您将找到所有具有uniq电子邮件的记录。如果某个记录具有相同的ID,那么您将获得第一个记录。
请选择图像以获得更多理解。 如果你还没有,那么我会详细解释。