我是一个新手,正在学习使用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"}]