2016-03-01 42 views
0

我想要執行類似Report.last的操作,但不是輸入最後一條記錄,而是需要特定用戶輸入的最後一條記錄。查找特定用戶的最後一條記錄(Rails)

+0

你可以發佈您的型號代碼爲您的報告和用戶對象? – Undo

+1

如果你正確地建立了你的關係,它就像'user.reports.last',其中'user'是'User'模型的一個實例。 [閱讀更多](http://guides.rubyonrails.org/association_basics.html) – sjagr

回答

0

您可能正在尋找類似

Report.where(created_by_id: user_id).last 

在where子句中,關鍵是在報告表中記錄的外鍵與用戶的關聯。我必須知道你的模型如何將報告與他們的創建者聯繫起來,以瞭解正確的語法。

+0

謝謝,我最終使用這個簡單。我還添加了.order(updated_at)來執行我想要的正確順序。 – Mirror318

0

您需要包含user_id或某種用戶指示符才能獲取特定用戶的最後一條記錄。您需要爲用戶和報告發布更多信息,例如模型。但我認爲你正在尋找的東西是這樣的:

Report.select([:user_id, :id, 'MAX(created_at)']).group(:user_id).limit(5)

0

user = User.where(:some_condition => "some_value").first user.reports.last

如果用戶是代表一個有效記錄用戶記錄將查詢其相關記錄,發現最後一個局部變量這會工作。

0

我假設你有用戶&報告之間的關係模型

user = User.first 
user.reports.order("updated_at DESC").last 
相關問題