![](/img/trans.png)
[英]Invalid results when searching emails using elasticsearch with Tire and Ruby on Rails
[英]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.