1
我有三种模式:用户,属于音乐会,属于地区。用户正在收听某个地区的音乐会。模型属于与用户通过=>音乐会分别建立的关系。总计差额并计算总计
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 => [???])
我只是以秒为单位计算时间,所以start_time始终为0,end_time为整数。我在视图的其他地方除以60来显示分钟数。上面的select语句如何处理更简单的数字?如start_time = 0和end_time = 360 – daved82 2013-04-25 02:20:03
如果您想以秒为单位求和差值,并且end_time和start_time以秒为单位存储,那么它就是:'@total = @ users.sum(:select =>'end_time - start_time as持续时间',:组=>:演唱会)'。 – 2013-04-25 11:40:17
Mysql ::错误:您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在':select =>“end_time - start_time as duration”,:group =>:concert_id}附近使用正确的语法。)AS sum_id FROM'at line 1:SELECT SUM :select =>“end_time - start_time as duration”,:group =>:concert_id})AS sum_id FROM'users' WHERE'users'.'concert_id' = 3 – daved82 2013-04-25 17:53:42