在我的應用程序可以擁有多個賬戶及賬戶可以有多個電子郵件。我有一個方法來計算每個帳戶的所有獨特的電子郵件,但這不是我想要的。如何獲得創紀錄的多個值地圖
相反,我想從一個帳戶返回所有唯一的電子郵件不是全部,因爲該方法目前正在做。
這裏是我當前的方法:
class AccountEmails
def self.count
accounts = Account.all
alert = accounts.map do |a|
a.users.first.alert_email.split(",")
end
billing = accounts.map do |a|
a.users.first.billing_email.split(",")
end
user = accounts.map do |a|
a.users.first.email.split(",")
end
snitch = accounts.map do |a|
a.snitches.map { |s| s.alert_email.split(",") }
end
[alert, billing, user, snitch].flatten.uniq.count
end
end
這將返回所有來自所有帳戶唯一的電子郵件。我想要爲每個帳戶返回所有唯一的電子郵件,因此帳戶1可以有四個唯一的電子郵件,帳戶2可以有五個唯一的電子郵件。
使用GROUP BY http://guides.rubyonrails.org/active_record_querying.html#total-of-grouped-items –
(1)是什麼數據看起來像在數據庫中?表格模式,關係,...(2)您是否真的在單個字段中存儲逗號分隔的電子郵件地址列表?如果你是,你的第一步是停止這樣做,那種反模式只會讓你的生活變得悲慘。 –
請閱讀「[mcve]」。我們需要最小的輸入數據和您的預期輸出。沒有這些,我們必須對數據進行反向工程,然後猜測輸出是否正確,這是浪費我們的時間。 –