2014-04-01 102 views
0

我有三个型号:问题用户Qrecord。 A Qrecord存储了用户已回答问题正确(在列中:已回答)和上次回复时间(在列中:last_answered)多少次。活动记录联接查询

所以,一个问题has_many Qrecords和一个用户has_many Qrecords。 Qrecord belongs_to:用户和:问题。

Qrecord型号

id   :integer   not null, primary key 
user_id  :integer 
question_id :integer 
answered  :integer 
last_answered :datetime 

有关问题的数组,我怎么回的一个,其中:last_answered是时间最长的前?

回答

1

假设的问题阵列是questions和用户记录user

user.qrecords.where(question_id: questions.pluck(:id)).order(:last_answered).last.question 
+0

近右侧。它还需要qrecord的user_id。如果您编辑它以使where条件在哪里(question_id:questions.pluck(:id),user_id:user)...,我会将其标记为正确。 – Finnjon

+0

并且非常感谢! – Finnjon

+0

在这种情况下,您可以使用'user.qrecords.where ...'。我更新了答案。 – wintermeyer