如何在 graphql 中使用 rails 助手?
How to use rails Helpers in graphql?
如何在我的 /app/graphql 目录中使用来自 /app/helpers 目录的助手?例如,有一种数据类型是嵌套的 JSON 对象,我得到了一个描述其结构的 JSON 模式文件。还有一个 JsonSchemaHelper,我想用它来根据 JSON 模式验证标量类型。像那样:
class Types::Scalar::Node < Types::Base::BaseScalar
def self.coerce_input(value, _context)
if Validators::GraphqlValidator.is_parsable_json?(value)
value = JSON.parse(value)
end
Validators::Node.validate!(value)
value
end
#Validators could be used to check if it fit the client-side declared type
def self.coerce_result(value, _context)
Validators::Node.validate!(value)
value
end
end
验证器看起来像:
module Validators
class Node
include JsonSchemaHelper
def self.validate!(ast)
json_schema_validate('Node', ast)
end
end
end
include JsonSchemaHelper
不起作用。
include
添加 JsonSchemaHelper
的方法作为 Validators::Node
class 的实例方法。 self.validate!(ast)
是一个 class 方法,您尝试将 json_schema_validate
作为 class 方法调用。将 include JsonSchemaHelper
更改为 extend JsonSchemaHelper
。
如何在我的 /app/graphql 目录中使用来自 /app/helpers 目录的助手?例如,有一种数据类型是嵌套的 JSON 对象,我得到了一个描述其结构的 JSON 模式文件。还有一个 JsonSchemaHelper,我想用它来根据 JSON 模式验证标量类型。像那样:
class Types::Scalar::Node < Types::Base::BaseScalar
def self.coerce_input(value, _context)
if Validators::GraphqlValidator.is_parsable_json?(value)
value = JSON.parse(value)
end
Validators::Node.validate!(value)
value
end
#Validators could be used to check if it fit the client-side declared type
def self.coerce_result(value, _context)
Validators::Node.validate!(value)
value
end
end
验证器看起来像:
module Validators
class Node
include JsonSchemaHelper
def self.validate!(ast)
json_schema_validate('Node', ast)
end
end
end
include JsonSchemaHelper
不起作用。
include
添加 JsonSchemaHelper
的方法作为 Validators::Node
class 的实例方法。 self.validate!(ast)
是一个 class 方法,您尝试将 json_schema_validate
作为 class 方法调用。将 include JsonSchemaHelper
更改为 extend JsonSchemaHelper
。