创建 ActiveRecord 查询以始终显示学生以前未完成的考试(Rails 应用程序)

Creating ActiveRecord query to always show an exam not previously done by student (Rails app)

在我添加到我学校的应用程序中的这个功能中,用户有一个新的体检(一个简短的英语测试)由系统呈现给他们每 4 周做一次。我想构建一个查询,该查询始终从数据库中检索学生以前未回答过的 Checkup。由于模型是关联的,我相信这很简单,但我不知道如何使用 Rails 对查询进行编码(已完成研究但无法找到答案)。这里要考虑三种模型:User、Answer 和 Checkup。对于学生给出的答案,我有一个单独的 Answer 模型,因为由于应用程序的其他功能,它们必须单独处理。这是用户模型:

 class User < ApplicationRecord
    has_many :answers
 end

这是答案模型:

class Answer < ApplicationRecord

   belongs_to :user
   belongs_to :checkup

end

这是检查模型

class Checkup < ApplicationRecord
   has_many :answers
end

在显示检查的页面控制器中,我希望在页面的操作中有一个变量来保存检索到的检查:

def exams
   @next_checkup = #the ActiveRecord query goes here 
end

查询需要检索一个 Checkup,其相关答案中没有当前用户给出的答案(答案的用户可以通过属性“user_id”检索)。我应该如何编码查询?谢谢!

我会尝试:

@next_checkup = Checkup.where.not(id: current_user.answers.pluck(:checkup_id)).first