“字段'posts'缺少必需的参数:id”,

时间:2019-07-14 03:15:53

标签: ruby-on-rails graphql

我正在尝试使用连接到graphql的导轨,并且在尝试显示用户的一系列帖子时遇到以下错误

  

“字段'posts'缺少必需的参数:id”

这是我的查询:

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

在我的query_type.rb文件中,定义了以下内容:

    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

这是一个简单的查询。我是这项技术(GraphQL)的新手,我看不出问题所在。有人可以指出哪里出了问题吗?谢谢。

1 个答案:

答案 0 :(得分:0)

运行查询时,您需要在参数中发送确切的名称。

在模式定义中,您有2个必需的参数,分别为id类型的IDtype类型的string。因此,您有2个选择:

更新查询以发送正确的名称id

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

或者,更新您的架构定义以接收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

希望有帮助。