私は Ecto と Elixir を使用するのが初めてで、説明できないエラーに遭遇しました。私のコードは、Ecto README の例とまったく同じように見えます。
これが Ecto Model と Query のモジュールです
defmodule Registration do
use Ecto.Model
schema "registrations" do
field :user_id, :string
field :created_at, :datetime, default: Ecto.DateTime.local
field :updated_at, :datetime, default: Ecto.DateTime.local
end
end
defmodule RegistrationQuery do
import Ecto.Query
def by_user(user_id) do
query = from r in Registration,
where: r.user_id == ^user_id,
select: r
Repo.all(query)
end
end
クエリ関数を呼び出す方法は次のとおりです
registrations = Repo.all RegistrationQuery.by_user("underwater")
これはすべて Ecto のドキュメントと完全に一致しているように見えますが、それ以外のことを言っているものは見つかりません。しかし、次のエラーが発生します。
protocol Ecto.Queryable not implemented for [%Ensalutilo.Registration{user_id: "underwater"}]