ruby-on-rails - 多对多计数

标签 ruby-on-rails ruby-on-rails-3 activerecord

User.rb
has_many :votes
has_many :photos


Photo.rb
has_many :votes
belongs_to :user

Vote.rb
belongs_to :user
belongs_to :photo

我想列出给照片投票的用户。但是此列表必须包含有关用户对照片投票的次数的信息。例如,当我转到 url photos/5/statistics 时,必须有如下列表:

1) User1   voted 30 times
2) User432 voted 15 times
3) User43  voted 12 times

我们将不胜感激。

最佳答案

使用 group_by 是一种方法

例如:

Photo.first.votes.group_by(&:user).each do |user, votes| 
  puts "User #{user.id} voted #{votes.count} times"
end

关于ruby-on-rails - 多对多计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5871381/

相关文章:

mysql - 在 Ruby on Rails 中从数组中删除具有列值的记录

ruby-on-rails - rails gem 权限问题(rails 上的选项卡)

postgresql - 导轨 4 : Advanced Query for Search Interface

ruby-on-rails - ActiveRecord虚拟属性作为记录属性

ruby-on-rails - Rails belongs_to 关联(与 :class_name) returns nil

ruby-on-rails - rails : Has_many through query depending on the through table attribute

ruby-on-rails - 如何在 Rails 中为集成测试设置 cookie?

javascript - 如何自定义rails3中的to_json方法?

layout - Rails 在 View 中获取当前布局名称

mysql - 更高效的事件记录分组