2016-03-01 46 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 
相关问题