Elixir Phoenix变更集错误
我对凤凰的这种行为感到困惑。它是一个包含两个应用程序的总括项目:lib和web。以下是umbrary mix.config:Elixir Phoenix变更集错误,elixir,phoenix-framework,Elixir,Phoenix Framework,我对凤凰的这种行为感到困惑。它是一个包含两个应用程序的总括项目:lib和web。以下是umbrary 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"},
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
文件,它是一个表单,用于向该控制器函数发送post:
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
如果我提交空白表单(无效),如图2所示未注释,则没有一个实例模式匹配,并且显示了“凤凰”调试错误页。
如果取消注释块1(和注释块2),则错误模式匹配,并且我看到表单上呈现了带有错误消息的new.html.eex模板 有人能解释一下,如果使用ListQuery.create,为什么会忽略这些模式吗谢谢您显示的代码不应该出现这种情况。最简单的方法是调用并输出
ListQuery.create(change)
的值,看看它是什么。它应该可以工作。。。还有-为什么要将Repo函数包装到其他函数中?@PatNowak查询和命令函数被抽象到该模块中,主要用于测试和更清晰的代码。@JustinWood由于项目是一个保护伞,我没有意识到库中的更改不是由phoenix.server选择的。伞需要重新编译。总之,代码是有效的。。。谢谢你的帮助。@sheldon_cooper在伞的根部运行服务器。其他应用程序中的更改将重新编译。