在graphql分页中找到名称“Connection”的重复类型定义

时间:2018-02-09 07:11:00

标签: ruby-on-rails ruby pagination graphql graphql-ruby

我已经使用连接助手在graphql apis中实现分页。我想为同一个模型多次实现连接,但是它给了我重复的类型错误。任何人都可以建议解决方案支持同一模型的多个api的分页。 我使用了下面的代码。

connection :employees_index, function: Queries::Employees::Index.new

connection :employees_user_index, function: Queries::Employees::UserIndex.new

1 个答案:

答案 0 :(得分:1)

我知道已经很晚了,您可能已经找到了解决方案,但是最近我遇到了同样的问题,并搜索了解决方案,但是找不到。所以我以自己的方式解决了。我认为这可能对其他人有用:

解决方案:

您可以通过具有连接类来解决它;在应用程序目录内的“ graphql / connection”目录中;像这样:

class Connections::EmployeesConnection < GraphQL::Function
   description 'Employees Connection'

   type Types::EmployeeType.define_connection
end

现在将此类用作您的查询/突变类的超类,

# Query class
class Queries::Employees::Index < Connections::EmployeesConnection
   def call(obj, args, ctx)
      # Do stuff here
   end
end

与user_index相同:

# Query class
class Queries::Employees::UserIndex < Connections::EmployeesConnection
   def call(obj, args, ctx)
      # Do stuff here
   end
end

类似地,您可以对其他员工查询和变更使用相同的连接类;重复的连接定义不会给您带来错误。