检查正确的参数在凤凰城

时间:2016-06-11 14:31:29

标签: elixir phoenix-framework

我使用Phoenix作为基本的JSON api,但我在解决如何检查请求者是否传递了正确的参数方面遇到了一些问题。

假设用户发出需要以下正文的帖子请求:

{
  "user": {
    "email": "someone@example.com",
    "password": "mangoes"
  }
}

我想检查用户是否已在用户对象中传入电子邮件和密码。目前我在控制器操作中做了类似的事情:

params[user][email] and params[user][password]

当然有更好的方法来检查正确的参数。也许与scrub_params有关?如果是这样,我如何返回一个漂亮的JSON错误消息而不是默认的Internal server error

感谢任何建议。

1 个答案:

答案 0 :(得分:3)

您可以在动作本身的参数中查看它

  def show(conn, %{"user" => %{"email" => email, "password" => password}} = params) do
    render conn, "show.html", messenger: messenger
  end

有关此方法的示例,请转到offical docs here