我正在尝试对将新用户插入数据库的结果进行模式匹配。
我无法弄清楚下面的代码有什么问题,我可能会使用错误的密钥->
吗?
我复制并粘贴了凤凰书中的代码,但它仍然无效。
这里的问题很困惑?我相信这是非常小的东西!
def create(conn, %{"user" => user_params}) do
changeset = User.changeset(%User{}, user_params)
Repo.insert(changeset) do
{:ok, user} ->
conn
|> put_flash(:info, "#{user.name} created!")
|> redirect(to: user_path(conn, :index))
{:error, changeset} ->
render(conn, "new.html", changeset: changeset)
end
end
我收到错误:
== Compilation error on file web/controllers/user_controller.ex ==
** (CompileError) web/controllers/user_controller.ex:24: unhandled operator ->
(stdlib) lists.erl:1354: :lists.mapfoldl/3
(stdlib) lists.erl:1355: :lists.mapfoldl/3
(stdlib) lists.erl:1354: :lists.mapfoldl/3
(stdlib) lists.erl:1355: :lists.mapfoldl/3
答案 0 :(得分:2)
由Justin Wood评论,缺少case
个关键字。
def create(conn, %{"user" => user_params}) do
changeset = User.changeset(%User{}, user_params)
case Repo.insert(changeset) do
{:ok, user} ->
conn
|> put_flash(:info, "#{user.name} created!")
|> redirect(to: user_path(conn, :index))
{:error, changeset} ->
render(conn, "new.html", changeset: changeset)
end
end