我有一个用户有时间日志(有日期)的数据模型。在Rails 3.0中查询复杂数据
我试图以一种让我吐出数据表的方式来查询我的数据库,列出每个有时间记录的用户以及查询期间每天记录的时间总和(类似于精华到每周时间表)。
我在解决这个问题的方法时遇到了问题。有任何想法吗?
我有一个用户有时间日志(有日期)的数据模型。在Rails 3.0中查询复杂数据
我试图以一种让我吐出数据表的方式来查询我的数据库,列出每个有时间记录的用户以及查询期间每天记录的时间总和(类似于精华到每周时间表)。
我在解决这个问题的方法时遇到了问题。有任何想法吗?
很多的细节将取决于您的数据模型,但简短的回答是,首先创建一个关系:
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
一旦你这样做,你可以查询timelogs用户:
User.all.timelogs
您可以添加额外的查询(特定的日期,金额等)。退房的Rails指南为如何缩小这个查询的详细信息:
试试这个,假设时间被存储为秒数为每个timelog行中的“时间”栏:
Timelog.where(...). # your time period
joins(:users).
group('users.id').
sum('duration')
这会给你一个用户id作为键的散列,以及作为值的持续时间之和。
请添加更多关于您当前设置(模型等)的信息 – jmccartie
如上所述。两个模型。用户和时间日志。用户有时间记录 –