凤凰城变更集错误

时间:2017-03-10 16:48:24

标签: elixir phoenix-framework

我对这种凤凰行为感到困惑。它是一个包含两个应用程序的伞形项目:lib和web。这是伞mix.config:

defp deps do
[{:phoenix, "~> 1.2.1"},
 {:phoenix_pubsub, "~> 1.0"},
 {:phoenix_html, "~> 2.6"},
 {:phoenix_ecto, "~> 3.0"},
 {:gettext, "~> 0.11"},
 {:cowboy, "~> 1.0"},
 {:lib, in_umbrella: true}
]

有一个简单的new.html.eex文件,它是发布此控制器功能的形式:

  def create(conn, %{"list" => list}) do
    changeset = List.changeset(%List{}, list)

    # BLOCK 1
    # case Repo.insert changeset do
    #   {:ok, %{id: id}} -> redirect conn, to: list_path(conn, :show, id)
    #   {:error, reasons} -> render conn, "new.html", changeset: reasons
    # end

    # BLOCK 2
    case ListQuery.create changeset do
      {:ok, %{id: id}} -> redirect conn, to: list_path(conn, :show, id)
      {:error, reasons} -> render conn, "new.html", changeset: reasons
    end
  end

// ListQuery.create

def create(list) do
  Repo.insert(list)
end

如果我提交空白表格(无效),而BLOCK 2被取消注释,如图所示,没有任何案例模式匹配,并显示phoenix调试错误页面。

如果取消注释BLOCK 1(并注释BLOCK 2),则错误模式匹配,我看到在表单上呈现的错误消息的new.html.eex模板。

如果使用ListQuery.create,有人可以解释为什么忽略模式吗?

由于

0 个答案:

没有答案