【问题标题】:Why is phoenix_ecto failing to compile on the :model in the changeset?为什么 phoenix_ecto 无法在变更集中的 :model 上编译?
【发布时间】:2016-12-21 02:56:12
【问题描述】:

当我尝试运行 mix deps.getmix 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

为什么会发生这种情况,我该如何解决?

【问题讨论】:

    标签: elixir phoenix-framework ecto elixir-mix


    【解决方案1】:

    如何解决这个问题:

    你需要像这样升级你的依赖:

    {: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

    【讨论】:

    • 我被困在这个问题上好几个小时了。谢谢 FlaqueDeau!
    猜你喜欢
    • 2015-10-21
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    相关资源
    最近更新 更多