class GraphQL::Types::Relay::BaseConnection

Use this to implement Relay connections, or take it as inspiration for Relay classes in your own app.

You may wish to copy this code into your own base class, so you can extend your own `BaseObject` instead of `GraphQL::Schema::Object`.

@example Implementation a connection and edge

# Given some object in your app ...
class Types::Post < BaseObject
end

# Make a couple of base classes:
class Types::BaseEdge < GraphQL::Types::Relay::BaseEdge; end
class Types::BaseConnection < GraphQL::Types::Relay::BaseConnection; end

# Then extend them for the object in your app
class Types::PostEdge < Types::BaseEdge
  node_type(Types::Post)
end
class Types::PostConnection < Types::BaseConnection
  edge_type(Types::PostEdge)
end

@see Relay::BaseEdge for edge types

Attributes

edge_type[R]

@return [Class]

node_type[R]

@return [Class]

Public Class Methods

nodes_field() click to toggle source

Add the shortcut `nodes` field to this connection and its subclasses

# File lib/graphql/types/relay/base_connection.rb, line 71
def nodes_field
  field :nodes, [@node_type, null: true], null: true
end

Public Instance Methods

nodes() click to toggle source

By default this calls through to the ConnectionWrapper's edge nodes method, but sometimes you need to override it to support the `nodes` field

# File lib/graphql/types/relay/base_connection.rb, line 80
def nodes
  @object.edge_nodes
end