如何在导轨中预加载前执行预加载?

时间:2017-03-23 09:34:59

标签: ruby-on-rails associations model-associations

我有这些模型关联:

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)

1 个答案:

答案 0 :(得分:1)

是的,您可以preload关联链

User.preload(taken_tests: :questions)

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

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

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