我正在尝试使用连接到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)的新手,我看不出问题所在。有人可以指出哪里出了问题吗?谢谢。
答案 0 :(得分:0)
运行查询时,您需要在参数中发送确切的名称。
在模式定义中,您有2个必需的参数,分别为id
类型的ID
和type
类型的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
希望有帮助。