如何在 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