为什么 phoenix_ecto 无法在变更集中的 :model 上编译?
Why is phoenix_ecto failing to compile on the :model in the changeset?
当我尝试 运行 mix deps.get
或 mix deps.compile
时出现此错误:
== Compilation error on file lib/phoenix_ecto/html.ex ==
** (CompileError) lib/phoenix_ecto/html.ex:3: unknown key :model for struct Ecto.Changeset
(stdlib) lists.erl:1354: :lists.mapfoldl/3
为什么会发生这种情况,我该如何解决?
如何解决这个问题:
您需要像这样升级您的依赖项:
{:ecto, "~> 2.0.4"},
{:phoenix_ecto, "~> 3.0.1"},
{:phoenix_html, "~> 2.6.2"},
然后 运行 mix clean --all
然后 mix deps.get
.
为什么会这样:
此错误来自您的 phoenix_ecto
依赖项落后于您的 ecto
依赖项。在ecto v2.0.0中,changeset.model
变成了changeset.data
。
phoenix_ecto
的代码仍在第三行使用 model
:
def to_form(%Ecto.Changeset{model: model, params: params} = changeset, opts) do
在this commit中,升级了phoenix_ecto
以支持ecto
的新版本。
当我尝试 运行 mix deps.get
或 mix deps.compile
时出现此错误:
== Compilation error on file lib/phoenix_ecto/html.ex ==
** (CompileError) lib/phoenix_ecto/html.ex:3: unknown key :model for struct Ecto.Changeset
(stdlib) lists.erl:1354: :lists.mapfoldl/3
为什么会发生这种情况,我该如何解决?
如何解决这个问题:
您需要像这样升级您的依赖项:
{:ecto, "~> 2.0.4"},
{:phoenix_ecto, "~> 3.0.1"},
{:phoenix_html, "~> 2.6.2"},
然后 运行 mix clean --all
然后 mix deps.get
.
为什么会这样:
此错误来自您的 phoenix_ecto
依赖项落后于您的 ecto
依赖项。在ecto v2.0.0中,changeset.model
变成了changeset.data
。
phoenix_ecto
的代码仍在第三行使用 model
:
def to_form(%Ecto.Changeset{model: model, params: params} = changeset, opts) do
在this commit中,升级了phoenix_ecto
以支持ecto
的新版本。