我有一个数据模型,用户有时间日志(有日期)。
我试图以一种方式查询我的数据库,这种方式可以让我吐出一个数据表,列出每个有时间日志的用户,以及查询期间每天记录的时间总和(实质上类似)到每周时间表)。
我在找出一种方法时遇到了问题。有什么想法吗?
答案 0 :(得分:1)
许多细节将取决于您的数据模型,但简短的回答是首先建立关系:
class User < ActiveRecord::Base
has_many :user_timelogs
has_many :timelogs, :through => :user_timelogs
end
class UserTimelog < ActiveRecord::Base
belongs_to :user
belongs_to :timelog
end
class Timelog < ActiveRecord::Base
has_many :user_timelogs
has_many :users, :through => :user_timelogs
end
执行此操作后,您可以查询用户的时间日志:
User.all.timelogs
您可以添加其他查询(特定日期,总和等)。查看Rails指南,了解有关如何缩小查询范围的更多信息:
答案 1 :(得分:0)
尝试此操作,假设时间存储为每个时间日志行的“持续时间”列中的秒数:
Timelog.where(...). # your time period
joins(:users).
group('users.id').
sum('duration')
这将为您提供一个哈希,其中用户ID为键,持续时间总和为值。