问题标签 [graphql-ruby]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - 解析器的未定义方法“deprecation_reason”
我正在为某些字段定义解析器,使用 ruby 的 graphql gem。
这是解析器定义:
这是 BaseResolver 类:
这就是我称之为解析器的地方:
这是我使用 Insomnia 得到的回应:
"message": "Resolvers::Events:Class 的未定义方法 `deprecation_reason'\n你的意思是?deprecate_constant"
graphql - 在 graphQL 查询中传递参数
我刚刚开始学习 GraphQL,目前正在尝试创建 twitter 的克隆。在下面的代码中,有没有一种方法可以将 id 参数(例如 user(id: 81))中的 81 自动传递给 userId 参数(例如 tweets(userId: 81))?
我在下面复制了我的代码
用户类型.rb
tweet_type.rb
查询类型.rb
graphql - 如何在 Graphql Ruby 中接受嵌套查询的字段参数?
我在 GraphQl(Apollo JS/Graphql Ruby)中遇到了这个错误:
Error Error: GraphQL error: Field 'pagination' doesn't accept argument 'pagination' GraphQL error: Variable $pagination is declared by Clients but not used. Reload the page and try again.
我有这个查询:
我有这个作为我的输入类型:
这在我的query_type.rb
文件中:
关于如何将论点传递给此顶层以外的其他东西的任何想法client
?我在这里阅读过文档,但无法弄清楚。
谢谢!
ruby - clientMutationId 如何在前端进行乐观更新?
我正在阅读有关 GraphQL 突变的信息,并且必须决定是否在 graphql-ruby 中使用 Relay 突变。我偶然发现了clientMutationId
这里https://graphql-ruby.org/api-doc/1.8.5/GraphQL/Schema/RelayClassicMutation.html
clientMutationId
显然用于乐观更新(在这里找到什么是前端开发中的“乐观更新” ),但我不确定这是如何使用的。
似乎您传递了clientMutationId
您的突变,并且服务器在响应中返回了这个值。但是这样做的目的是什么?某种客户端幂等性?
ruby-on-rails - 访问子字段时如何让 graphql-ruby 使用连接?
我有一个这样的模型
和这样的查询
当我获取此查询时,我会select * from "foos"
为集合中的每个条获取一个。
我怎样才能让这一切变得更聪明并减少 SQL 查询?
ruby-on-rails - 如何避免对 has_many 的 N+1 查询:通过关联
我正在使用 Ruby on Rails 和 graphql gem 构建一个 GraphQL API。现在我有一些n:m
关系,比如Projects
have manyUsers
和Users
have many Projects
。我的模型是这样的:
现在我想用这样的查询来查询所有项目及其对应的项目经理:
而且我的解析器基本上就像Project.all
和每个Project
调用一样project.projectManagers
,这会导致数百个查询:
我添加了子弹宝石,但没有关于缺少急切加载的警告。事实上,如果我使用Project.all.includes(:project_managers)
,我会得到我想要的查询 ( SELECT "project_assignments".* FROM "project_assignments" WHERE "project_assignments"."project_id" IN ($1, $2, $3, $4, $5, $6, $7, $8, ...)
),但User
无论如何都会触发查询:
有什么我可以做的预加载用户?
我eager_load
也尝试过,但结果基本相同(尝试了另一个具有正常has_many
关联的示例(否:through
):
union - 使用 graphql-ruby 实现联合类型
我正在尝试使用graphql-ruby
.
我遵循了官方文档,但得到了下面列出的错误。
这是我当前的代码。
这是 graphql 查询。
当我发送查询时,出现以下错误。
找不到任何错字或任何东西。
我错过了什么吗?
ruby-on-rails - habtm 中的 Graphql-ruby 范围,嵌套查询中的数据泄漏
这是使用标准 graphql-ruby 设置时发生的数据泄漏的示例。
使用下面的 graphql 嵌套请求,响应返回嵌套在公司 1 下的数据,该数据属于公司 2。我希望响应仅限于属于它嵌套的公司的会计日志。
那样的话,就是在泄露信息。
问题是我们如何修补泄漏,以便响应中返回的唯一数据及其嵌套对象是属于公司的数据(根对象)。
这个查询:
返回此响应:
在公司 1 的嵌套元素中泄露公司 2 的事务日志数据。
同样,问题是:我们如何保持范围,仅在所显示的公司的上下文中显示数据?
重现代码:
GraphQL 类型(使用 graphql-ruby gem)
楷模
种子.rb
包含完整代码的公共回购,旨在作为教育资源:
ruby-on-rails - 使用 Active Record 的 Graphql-Ruby 映射
我对使用 Rails 完全陌生,我正在尝试使用 ruby-graphql 创建一个基本的 crud 应用程序,以对 sqlite3 数据库进行带有活动记录的简单查找查询。我设置了一个用户类型
然后我设置查询:
我的查询是:
我收到以下错误:
如果有人可以帮助我,我将不胜感激。如何在 Ruby/Rails 中进行这种转换?
ruby-on-rails - 在 GraphQL 模式中获取上下文
我正在使用 graphql-ruby 并试图保护管理员在这样的架构中的突变
但我没有那里的上下文。也尝试在 中做同样的事情Types::Admin::MutationType
,同样的结果。
是否可以在解决之前在任何地方检查上下文?