【发布时间】:2020-05-27 07:16:07
【问题描述】:
我有一个带有 GraphQL 的 Rails API 应用程序。我目前正在尝试创建一个 Mutation 来一次更新多个对象。
module Mutations
module Widgets
class UpdateWidgets < ::Mutations::BaseMutation
argument :widgets, [Types::WidgetType, null: true], required: true
field :widgets, [Types::WidgetType], null: true
field :errors, [String], null: true
def resolve(widgets:)
# update widgets here
end
end
end
end
我不断收到以下错误:
GraphQL::Schema::InvalidTypeError:
Argument input on Mutation.updateWidgets is invalid: argument "widgets" type must be a valid input type (Scalar or InputObject), not GraphQL::ListType ([Widget!])
然后我听到了将其设为输入对象的建议,我做了以下操作:
module Types
class UpdateWidgetsType < Types::BaseInputObject
description 'Input for multiple widgets'
argument :widgets, [Types::WidgetType, null: true], required: true
end
end
现在它是一个输入类型,我调整了要调用的突变
argument :update_widgets, Types::UpdateWidgetType, required: true
反而得到了类似的错误:
GraphQL::Schema::InvalidTypeError:
Input field UpdateWidgetsInput.updateWidgets is invalid: argument "widgets" type must be a valid input type (Scalar or InputObject), not GraphQL::NonNullType ([Widget]!)
寻找有关如何使其工作的任何见解。
【问题讨论】:
标签: ruby-on-rails ruby graphql