Ich versuche zu testen, ob eine Benutzer-ID ist die Ressource-ID mit Guardian Auth. Wenn es kein aktuelles Token gibt und ich versuche, zu einer URL zu gelangen, die nach einem Token sucht, bekomme ich den Fehler function nil.id/0 is undefined or private
. Ich komme aus einem Ruby-Hintergrund und ich weiß nicht, warum es sagt, .id
ist eine Funktion? und warum dies einen Fehler verursacht. Hier ist mein Code:Funktion nil.id/0 ist undefined oder private - Elixir
def index(conn, %{"user_id" => user_id}) do
user = Repo.get(User, user_id)
|> Repo.preload(:projects)
cond do
user.id == Guardian.Plug.current_resource(conn).id ->
conn
|> render("index.html", projects: user.projects, user: user)
:error ->
conn
|> put_flash(:info, "No access")
|> redirect(to: session_path(conn, :new))
end
end
Wenn es keine current_resource gibt, dann druckt es diesen Fehler. Aber wenn es keine current_resource gibt, will ich nur, dass es weiter zum: error path geht und den Session-Pfad rendert.
ich die Hilfe zu schätzen wissen Ich denke, du hast recht, aber ich bin erhalte diese Störung, wenn ich den Code ändern. 'web/controllers/admin/project_controller.ex: 12: undefinierte Funktionsressource/0'. Das ist, wenn ich die Zeile zu dieser Ressource ändere == Guardian.Plug.current_resource (conn) && user.id = resource.id' – Bitwise
Sorry vergessen, Sie zu markieren – Bitwise
Das ist 'resource =', nicht '=='. – Dogbert