我有这些模型关联:
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)
?
答案 0 :(得分:1)
是的,您可以preload
关联链
User.preload(taken_tests: :questions)
这将加载所有用户的测试以及属于这些测试的所有问题
如果您有需要,可以链接关联,如果您有可以预加载它们的答案。
User.preload(taken_tests: [questions: :answers])