为什么我的注册突变不适用于角色字段?
Why doesn't my registration mutation work with the role field?
为什么我的注册变更不适用于角色字段?
我编写了以下代码,但无法弄清楚为什么我的角色枚举不适用于我的变更。
我上传了我的代码到 github Github code.
注册突变有效:
mutation{
registerUser(input:{email:"a@a.com", password:"a@a.com", role:"user",passwordConfirmation:"a@a.com"}){
email
}
}
但是当我尝试我的登录突变时它失败了:
mutation{
loginUser(input:{email:"a@a.com", password:"a@a.com", role:"user"}){
token
user{
email
}
}
}
我得到这个错误::
"# KeyError at POST /api/graphiql\n\nException:\n\n
** (KeyError) key :role not found in: %{email: \"a@a.com\", password: \"a@a.com\"}\n
@benwilson512 在长生不老药论坛上为我解答了我做错的事情。
我的以下假设是我可以使用 field(:role, :user_input)
从我的 user_input 获取输入类型是不正确的。
如果我想将角色传递给我的突变,最好的方法是使用 field(:role, non_null(:string))
并将其视为字符串。
但我仍然不确定处理此问题的最佳方法是什么,尽管这解决了我遇到的问题。
感谢所有看过我问题的人。
此外,如果您想将角色限制为枚举值,那么以下应该有效:
field(:role, :type :role)
然后是具有值的角色枚举。
这个答案是由 @kokolegorille 在 elixirforum 上提供的。
问题解决了
为什么我的注册变更不适用于角色字段?
我编写了以下代码,但无法弄清楚为什么我的角色枚举不适用于我的变更。
我上传了我的代码到 github Github code.
注册突变有效:
mutation{
registerUser(input:{email:"a@a.com", password:"a@a.com", role:"user",passwordConfirmation:"a@a.com"}){
email
}
}
但是当我尝试我的登录突变时它失败了:
mutation{
loginUser(input:{email:"a@a.com", password:"a@a.com", role:"user"}){
token
user{
email
}
}
}
我得到这个错误::
"# KeyError at POST /api/graphiql\n\nException:\n\n
** (KeyError) key :role not found in: %{email: \"a@a.com\", password: \"a@a.com\"}\n
@benwilson512 在长生不老药论坛上为我解答了我做错的事情。
我的以下假设是我可以使用 field(:role, :user_input)
从我的 user_input 获取输入类型是不正确的。
如果我想将角色传递给我的突变,最好的方法是使用 field(:role, non_null(:string))
并将其视为字符串。
但我仍然不确定处理此问题的最佳方法是什么,尽管这解决了我遇到的问题。
感谢所有看过我问题的人。
此外,如果您想将角色限制为枚举值,那么以下应该有效:
field(:role, :type :role)
然后是具有值的角色枚举。
这个答案是由 @kokolegorille 在 elixirforum 上提供的。
问题解决了