Rails 3:如何总结记录

时间:2012-12-21 06:20:35

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1

我有模型注册表,用于根据部门和组别标记用户的出席情况。每个用户都有一个部门和组。

注册模型

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

在上述字段中,“一个和两个”是时间段(例如:从9-14,14-18).Attendance被标记为用户属于当前日期,groupid,departmentid.So同一天将有具有groupid,departmentid和出席的多个条目。

下面的样本注册表

enter image description here

我想找不到。每天注意的用户数。 目前我已经尝试了

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

它变得很好,但我想找到,

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

有可能......

提前致谢。

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

这有用吗?

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