Estoy tratando de jugar con rieles conectados a GraphQL y tengo el siguiente error al intentar mostrar una serie de mensajes por un usuario

Falta los "Publicaciones de campo" que falta los argumentos: ID "

Aquí está mi consulta:

query {
 posts(user_id: 10, type: "Video") {
    title
    file
  }
}

Y en mi archivo Query_Type.rb tengo lo siguiente definido:

    field :posts, [Types::PostType], null: false do
      argument :id, ID, required: true, as: :user_id
      argument :type, String, required: true
    end

    def posts(user_id:, type:)
      posts = Post.where("user_id = ? AND type = ?", user_id, type)
    end

Es una simple consulta. Soy nuevo en esta tecnología (GraphQL) y no veo cuál es el problema. ¿Alguien puede identificar lo que está mal? Gracias.

1
Dan Rubio 14 jul. 2019 a las 06:15

1 respuesta

La mejor respuesta

Debe enviar el nombre exacto en los parámetros cuando ejecute la consulta.

En su definición de esquema, tiene 2 argumentos requeridos llamados id de tipo ID y type de tipo string. Así que tienes 2 opciones:

Actualice su consulta para enviar el nombre correcto id:

query {
 posts(id: "10", type: "Video") {
    title
    file
  }
}

O, actualice su definición de esquema para recibir un user_id:

field :posts, [Types::PostType], null: false do
  argument :user_id, ID, required: true, as: :user_id
  argument :type, String, required: true
end

def posts(user_id:, type:)
  posts = Post.where("user_id = ? AND type = ?", user_id, type)
end

Espero que ayude.

0
Marco Daniel 15 jul. 2019 a las 06:45