繁体   English   中英

导轨/红宝石。 搜索双重电子邮件

[英]Rails/Ruby. Searching for double emails

我正在 Rails 3 中开发 API。最近我看到一些用户帐户翻了一番。 我不确定有多少,所以我需要一种方法来找出哪些帐户是双倍的。

有没有办法在 ruby 中搜索整个数据库并获取那些获得相同 email 地址的用户帐户(因此双)?

感谢所有输入!

只需打开 Rails 控制台( rails c )并输入如下内容:

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

这将返回一个 Hash,其中 email 地址为键,其出现次数为值。 结果将如下所示:

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

然后,我想您可以获取这些 email 地址并实际获取帐户:

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

将 output 全部放在控制台中,您可以像这样组合两者:

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

我想如果你尝试使用(例如):

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

这会对你有所帮助(你没有写你的模型的详细描述,但如果你认为你会得到线索)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM