我有一個用戶有時間日誌(有日期)的數據模型。在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
如上所述。兩個模型。用戶和時間日誌。用戶有時間記錄 –