我发现了一种非常丑陋的方式来做我需要的事情(目前只是在 Rails 视图中,我稍后会移动它),基本上是找到特定用户的所有文章,将它们分组到他们各自的出版物中,然后然后将用户为该出版物添加的所有文章的共享计数相加。
……但这并不漂亮。如果有更好的方法可以做到这一点,有人可以建议吗?
=@user.articles.group(:publication).map do |p|
=p.publication
=@user.articles.where("publication = ?", p.publication).sum(:twitter_count)
=@user.articles.where("publication = ?", p.publication).sum(:facebook_count)
=@user.articles.where("publication = ?", p.publication).sum(:linkedin_count)
这给出了输出(例如)NYT 12 18 14 BBC 45 46 47 CNN 75 54 78,这正是我所需要的。
但是,目前,它最后还在输出一些额外的东西 - “[5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5] sum(:twitter_count)” - 我认为这是与.map 有关,但我不知道为什么。