我一直在寻找关于如何翻译相关模型的传统ActiveRecod .includes的示例,同时使用graphQL-ruby,并且找不到任何。 作为一个用例,我们假设我们有以下模型:
User
has_many :books
Book
belongs_to :user
has_many :chapters
Chapter
belongs_to :book
has_many :pages
Page
belongs_to :chapter
我们如何实施以下内容:
User.includes(books: {chapters: :pages})
实际嵌套的GraphQL查询相对简单;但是,它似乎在N + 1运行。
非常感谢任何帮助。
答案 0 :(得分:0)
我们为graphql-ruby编写了一个小gem,它通过遍历GraphQL查询生成包含。
https://github.com/thesquarefoot/graphql_includable
对于您的示例,您可以在用户字段解析器中调用User.includes_from_graphql(ctx)
。
答案 1 :(得分:0)
您应该使用graphql-preload gem来预加载Graphql中的关联