0

我使用graphql gem 1.8.11。

UserTypenotifications连接字段,如果被查询,我想执行一些操作(read!在下面的示例中)。

下面的示例对所有关联字段执行操作。即使notificationsfield 有分页参数并且不是所有的notifications都被查询到,也会对 all 执行操作notifications

如何仅对查询的节点执行操作?

module Types
  class UserType < Types::BaseObject
    implements GraphQL::Relay::Node.interface

    field :id, ID, null: false
    field :notifications, NotificationType.connection_type, null: true

    global_id_field :id


    def notifications
      object.notifications.tap { |o| o.read! }
    end
  end
end
4

1 回答 1

0

我最终定制了连接类。

应用程序/graphql/types/notification_type.rb:

module Types
  class NotificationType < Types::BaseObject
    #
    # existing code
    #

    class << self
      def connection_type_class
        @connection_type_class ||= Types::NotificationConnectionType
      end
    end
  end
end

应用程序/graphql/types/notificaiton_connection_type.rb:

module Types
  class NotificationConnectionType < GraphQL::Types::Relay::BaseConnection
    def nodes
      super.map(&:read!)
    end
  end
end
于 2018-12-17T03:45:59.627 回答