【发布时间】:2017-12-08 23:21:07
【问题描述】:
为什么我不能这样做:
defmodule M1 do
defstruct [:a, :b, :c, :d]
# other stuff
end
# ...............
schema "my_model" do
# .................
field :my_field, M1, virtual: true
错误
** (ArgumentError) invalid or unknown type MyApp.M1 for field :my_field
模块 M1 已解析,但为什么不允许使用它?
【问题讨论】:
-
M1有@behaviour Ecto.Type吗? -
@Dogbert,不....
-
这就是您问题的答案:模块应该实现
Ecto.Type行为以用作Ecto类型,这在文档中有明确规定。 -
@mudasobwa,这没有明确指定
-
“为实现自定义类型定义函数和
Ecto.Type行为。” — hexdocs.pm/ecto/Ecto.Type.html#content
标签: elixir phoenix-framework ecto