1

我有三个模型:用户,属于音乐会,属于地区。一个用户在一个地区听音乐会。模型belongs_to通过=>concerts分别与用户建立关系。

class Region < ActiveRecord::Base
  has_many :concerts
  has_many :users, :through => :concerts
end

我在用户模型中有一个 start_time 和 end_time,以便我可以记录用户听音乐会的分钟数。在用户视图中,我可以通过以下方式呈现:

<%= user.start_time.to_i - user.end_time.to_i %>

但是在如何计算音乐会级别所有用户收听的总分钟数时遇到了困难。

@total = @users.sum(:group=>:concert, :conditions => [???]) 
4

1 回答 1

0

据我所知,这应该适用于 MySQL,其他数据库将有自己的功能来处理这类事情。我在搜索中看不到明显的可移植函数,但您可以尝试滚动自己的计算。

@total = @users.sum(:select=>'TIMESTAMPDIFF(MINUTE, user.start_time, user.end_time) AS duration', :group=>:concert)
于 2013-04-25T01:55:58.893 回答