【发布时间】:2019-08-29 04:52:18
【问题描述】:
所以我正在努力为一个项目学习 GraphQL for ruby。
我几乎已经启动并运行了它的某些部分,但我遇到了其他部分的问题。有很多教程涵盖了超基础知识,但似乎都没有朝着正确的方向扩展。
我有一个突变来更新我的用户。到目前为止,一切都很好。我可以通过他们的 ID 来查找用户,并更新一个特定的字段。我可以将其扩展到更新两个字段。
我不能做的,这看起来很疯狂,就是概括这些领域——根本就没有。我的用户模型最终会附加 20 多个字段——电话号码、地址、职位等。
当我创建突变时,我必须定义进入 resolve 方法的参数。到目前为止,一切都很好。然后我定义突变可以返回的字段。再说一次,到目前为止一切都很好。
然后我开始讨论实际的解析方法。
初始语法还不错。 def resolve(user_id:, name:, email:)。然后您会发现,尽管将 required 设置为 false,但您必须包含所有值。您需要为可选变量指定默认值。所以它变成了def resolve(user_id:, name: null, email: null)——但这实际上会消除这些值,你不能进行部分更新。更糟糕的是,想象一下您必须以这种方式设置 20 个字段。您可以通过尝试将参数转换为字典并拒绝 null 值来玩游戏——但如果属性需要再次为 nil,则不能将属性设置为 nil。
【问题讨论】:
标签: ruby-on-rails graphql