3

我一直在寻找有关如何在使用 graphQL-ruby 时为关联模型翻译传统 ActiveRecod .includes 的示例,但没有找到任何示例。作为一个用例,假设我们有以下模型:

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 运行。

任何帮助将不胜感激。

4

2 回答 2

0

您应该使用 graphql-preload gem 在 Graphql 中预加载关联

https://github.com/ConsultingMD/graphql-preload

于 2018-06-05T08:30:38.707 回答
0

我们为 graphql-ruby 编写了一个小 gem,它通过遍历 GraphQL 查询来生成包含。

https://github.com/thesquarefoot/graphql_includable

对于您的示例,您将调用User.includes_from_graphql(ctx)User 字段解析器。

于 2018-02-08T20:16:56.377 回答