我有三个模型:属于Concerts的用户,属于Regions。用户在区域中听音乐会。模型belongs_to关系分别与用户通过=>建立。音乐会。
class Region < ActiveRecord::Base
has_many :concerts
has_many :users, :through => :concerts
end
我在Users模型中有一个start_time和end_time,这样我就可以记录用户收听音乐会的分钟数。在用户视图中,我可以通过以下方式呈现:
<%= user.start_time.to_i - user.end_time.to_i %>
但是如何计算音乐会级别所有用户收听的总分钟数。
@total = @users.sum(:group=>:concert, :conditions => [???])
答案 0 :(得分:0)
据我所知,这应该适用于MySQL,其他数据库将拥有自己的功能用于此类事情。我在搜索中看不到明显的便携式功能,但您可以尝试滚动自己的计算。
@total = @users.sum(:select=>'TIMESTAMPDIFF(MINUTE, user.start_time, user.end_time) AS duration', :group=>:concert)