5

部門とグループに基づいてユーザーの出席をマークするモデルレジスタがあります。各ユーザーには部門とグループがあります。

モデルの登録

date:date , departmentid:string , groupid:integer , one:integer , two:integer

上記のフィールドの中に「1と2」はタイムスロットです(例:9-14、14-18)。出席は、ユーザーが現在の日付、グループID、部門IDに属するようにマークされます。したがって、同じ日に複数のエントリがあります。 groupid、departmentidおよびそれらの出席。

以下のサンプルレジスタテーブル

ここに画像の説明を入力してください

いいえを見つけたいです。1日に注目するユーザーの数。現在私は試しました

@register = Register.where(:date=>"2012-12-28").sum(:one)

良くなっていますが、見つけたいのですが、

@register = Register.where(:date=>"2012-12-28").sum(:one , :two ,:three)

出来ますか....

前もって感謝します。

4

2 に答える 2

2

これはどう ?

class Register < AR:Base

...

  def self.attendee_count(slot) # slot is :one or :two
    scoped.group(:date ).sum(slot)
  end

end

Register.where(:date => Date.today).attendee_count(:one)
Register.where(:date => Date.today, :departmentid => "DP14").attendee_count(:two)
于 2012-12-21T09:34:54.780 に答える
0

これは機能しますか?

Department.group(:date).sum(:one、:two)

于 2012-12-21T06:55:23.490 に答える