我创建了一个接口类型,例如:
module UserErrorType
include Types::BaseInterface
definition_methods do
def resolve_type(object, _ctx)
...
end
end
end
一个看起来像这样的查询:
query {
thing {
errors {
code
message
... on SomeDerivedType {
blah
}
}
}
}
当我在本地运行它时,一切正常,我能够解析我的派生类型并进入该resolve_type
方法。
当我在 rspec 中运行时:
describe UserErrorType, type: :graphql_object do
subject { execute(query, context) }
end
我收到以下错误:
GraphQL::RequiredImplementationMissingError: schema contains Interfaces or Unions,所以你必须定义一个
resolve_type -> (obj, ctx) { ... }
函数
根据我对错误消息的理解,它希望我将resolve_type
方法直接放在Schema
对象上,尽管我应该能够definition_methods
像上面那样直接在接口中定义它。