1

私には 3 つのモデルがあります: リージョンに属するコンサートに属するユーザーです。リージョンでコンサートを聴いているユーザー。=>コンサートを介してユーザーとそれぞれ設定されたbelongs_to関係をモデル化します。

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 で動作するはずです。他の DB には、この種のことに対して独自の機能があります。私の検索では明らかなポータブル関数は見つかりませんでしたが、独自の計算を試してみてください。

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