如何在 rails 中的预加载之上执行预加载?

How to perform preload on top of a preload in rails?

我有这些模特协会:

class User < ApplicationRecord
   has_many taken_tests
.
.
.
end

class Test < ApplicationRecord
   has_many questions
.
.
end

现在 User.preload(:taken_tests) 预加载测试。 有没有一种方法可以在测试的同时预加载问题? 就像是: User.preload(:taken_tests).preload(:questions) ?

是的,你可以preload关联链

User.preload(taken_tests: :questions)

这将加载所有用户的测试以及属于这些测试的所有问题

如果需要,您可以将关联链接起来,如果您有答案,也可以预加载它们。

User.preload(taken_tests: [questions: :answers])