1

为什么我的注册突变不适用于角色字段?

我编写了以下代码,但无法弄清楚为什么我的角色枚举不适用于我的突变。

我将我的代码上传到 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 
4

2 回答 2

1

因此,@benwilson512 在 elixirforum 上为我回答了我做错的事情。

我可以field(:role, :user_input)用来从 user_input 获取输入类型的以下假设不正确。

如果我想将角色传递给我的突变,最好的方法是使用field(:role, non_null(:string))字符串并将其视为字符串。

但是我仍然不确定解决此问题的最佳方法是什么,尽管这解决了我遇到的问题。

因此,感谢所有查看我问题的人。

于 2019-11-19T08:33:02.250 回答
1

此外,如果您想将角色限制为枚举值,那么以下应该可以工作:

field(:role, :type :role)然后是具有值的角色的枚举。

这个答案是由@kokolegorille 在 elixirforum 上提供的。

这解决了问题

于 2019-11-20T08:51:29.937 回答