es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Devolver un array de objetos en GraphQL Rails.

Necesito escribir código para mostrar usuarios con organizaciones, pero devuelve el siguiente error en la consulta, busco, pero con error.

Mi código:

module Types
  class UserType < Types::BaseObject
    field :id, ID, null: false
    field :email, String, null: false
    field :role, String, null: true
    field :organization_ids, [Types::OrganizationType], null: false
  end
end

module Types
  class OrganizationType < Types::BaseObject
    field :id, ID, null: false
    field :name, String, null: false
  end
end

Pero devuelve el siguiente error:

Error

Esta es mi consulta:

Consulta

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el error se produce porque el campo organization_ids en UserType está especificado para devolver un array de Types::OrganizationType, pero en el código no está definido correctamente como un campo GraphQL.

    Para definir correctamente el campo organization_ids, deberá agregar un resolvedor que recupere los IDs de la organización para el usuario y los devuelva como un array. Aquí hay un ejemplo de cómo hacerlo:

    module Types
      class UserType < Types::BaseObject
        field :id, ID, null: false
        field :email, String, null: false
        field :role, String, null: true
        field :organization_ids, [ID], null: false # especifica que este campo devuelve un array de ID
        # Define un resolvedor que recupera los IDs de organización para el usuario
        def organization_ids
          object.organizations.pluck(:id) # suponiendo que el usuario tiene muchas organizaciones
        end
      end
    end
    

    Este código debería definir correctamente el campo organization_ids y resolverlo devolviendo un array de IDs de organización para el usuario. Puede modificar el resolvedor organization_ids para que coincida con su modelo de datos específico.

    Una vez que haya definido correctamente el campo organization_ids, su consulta funcionará como se esperaba.

Comments are closed.