Sto provando ad implementare Guardian nella mia API ed eseguire un login attraverso di esso per ottenere JWT indietro. Il tutorial che sto guardando è here. Il problema consiste nell'implementare l'accesso utilizzando un modello utente simile a quello che stanno utilizzando nell'esempio. Il codice del modello si presenta come:Ecto.Queryable non implementato per
defmodule PushflightServer.User do
use PushflightServer.Web, :model
use Ecto.Repo
import Ecto.Query
alias PushflightServer.Repo
schema "users" do
field :name, :string
field :email, :string
field :encrypted_password, :string
field :password, :string, virtual: true
field :verify_token, :string
field :verify_date, Ecto.DateTime
timestamps
end
def from_email(nil), do: { :error, :not_found }
def from_email(email) do
IO.write("Before email")
IO.inspect(email)
Repo.one(User, email: email)
end
Se io chiamo la FROM_EMAIL sia dall'interno Phoenix o direttamente in iex -S mescolare, ottengo il seguente errore:
user = PushflightServer.User.from_email ("[email protected]")
** (Protocol.UndefinedError) protocol Ecto.Queryable not implemented for User, the given module does not exist (ecto) lib/ecto/queryable.ex:33: Ecto.Queryable.Atom.to_query/1 (ecto) lib/ecto/repo/queryable.ex:90: Ecto.Repo.Queryable.execute/5 (ecto) lib/ecto/repo/queryable.ex:15: Ecto.Repo.Queryable.all/4 (ecto) lib/ecto/repo/queryable.ex:44: Ecto.Repo.Queryable.one/4
devo mancare qualcosa di semplice, ma non sono riusciti a trovare alcuna documentazione sul perché questo sta accadendo. L'inserimento dei dati utilizzando la Repo ha funzionato bene. Qualche idea?