2016-07-13 13 views
1

Ich bin brandneu bei Phoenix und Elixir. Bis jetzt ist es großartig, aber es gibt eine Lernkurve. Im Moment bekomme ich diesen Fehler, während ich einem Tut folge und ich kann nicht sehen, was falsch ist. (SyntaxError) web/controllers/registration_controller.ex:16: syntax error before: '->'(SyntaxError) web/controllers/registration_controller.ex: 16: Syntaxfehler vorher: '->' - Elixir

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 

Fehler:

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 

Sorry, wenn dies eine schlechte Frage, aber für das Leben von mir kann ich nicht scheinen, richtig zu machen. Jede Hilfe wäre großartig, danke!

+1

ist ' # Benutzer anmelden? Code, der bereits redigiert wurde oder nur ein Kommentar? Denn wenn es sich nur um einen Kommentar handelt, erwartet der Compiler eine Anweisung, die nicht vorhanden ist und die fehlschlägt. Der Fehler sollte in diesem Fall auf "{: error, changeset}" zeigen, da dies die Sache ist, die er sieht, anstelle der erwarteten Anweisung. –

Antwort

3

Sie benötigen eine Registrierung abzuschließen (add-Code anstelle des Kommentars), gibt es nichts, was Sie sind mit jeweils tun, dies ist ein Beispiel von einer Anwendung, die JWT-Authentifizierung verwendet:

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