(SyntaxError)web / controllers / registration_controller.ex:16:语法错误之前:' - >' - Elixir

时间:2016-07-13 22:10:21

标签: error-handling elixir phoenix-framework

我是菲尼克斯和Elixir的新品牌。到目前为止,它很棒,但有一个学习曲线。现在,我跟着啧啧得到了这个错误,我似乎无法看出出了什么问题。 (SyntaxError) web/controllers/registration_controller.ex:16: syntax error before: '->'

Registration_controller:

defmodule Restore.RegistrationController do
  use Restore.Web, :controller
  alias Restore.User

  def new(conn, _params) do
    changeset = User.changeset(%User{})
    render conn, changeset: changeset
  end

  def create(conn, %{"user" => user_params}) do
    changeset = User.changeset(%User{}, user_params)

    case Restore.Registration.create(changeset, Restore.Repo) do
      {:ok, changeset} ->
        # sign in the user
      {:error, changeset} ->
        # show error message
    end
  end
end

错误:

    Compiling 2 files (.ex)

== Compilation error on file web/controllers/registration_controller.ex ==
** (SyntaxError) web/controllers/registration_controller.ex:16: syntax error before: '->'
    (elixir) lib/kernel/parallel_compiler.ex:116: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/1

很抱歉,如果这是一个糟糕的问题,但对于我的生活,我似乎无法做到这一点。任何帮助都会非常感谢你!

1 个答案:

答案 0 :(得分:3)

您需要完成注册过程(添加代码而不是评论),您对每个案例都没有做任何事情,这是来自使用JWT身份验证的应用程序的示例:

  def create(conn, %{"user" => user_params}) do
    changeset = User.changeset(%User{}, user_params)

    case Repo.insert(changeset) do
      {:ok, user} ->
        {:ok, jwt, _full_claims} = Guardian.encode_and_sign(user, :token)

        conn
        |> put_status(:created)
        |> render(Restore.SessionView, "show.json", jwt: jwt, user: user)

      {:error, changeset} ->
        conn
        |> put_status(:unprocessable_entity)
        |> render(Restore.RegistrationView, "error.json", changeset: changeset)
    end