erlang 文件中存在编译错误,函数未定义

f87krz0w  于 2022-12-08  发布在  Erlang
关注(0)|答案(1)|浏览(151)

我正在编译phoenix应用程序,在我的一个模块上遇到错误。

def toggle_complete(conn, %{"id" => id} = _params, _current_user, _claims) do
    with %Payout{} <- payout = Repo.get(Payout, id),
         {_count, nil} <- Payouts.toggle_prize_claims(payout),
         {:ok, payout} <- Payouts.toggle_complete(payout) do
      conn |> render("payout_simple.json", payout: payout)
    else
      nil -> {:error, :payout_not_found}
      error -> error
    end
end

以下是错误

== Compilation error in file lib/pxf/web/controllers/mart/payout_controller.ex ==
** (CompileError) lib/pxf/web/controllers/mart/payout_controller.ex:145: undefined function payout/0 (expected Pxf.Web.Mart.PayoutController to define such a function or for it to be imported, but none are available)

我不知道为什么它会显示未定义的函数。我在这里的模式匹配中做错了什么吗?

7nbnzgx9

7nbnzgx91#

您应该在 your 作用域中分配payout

- with %Payout{} <- payout = Repo.get(Payout, id)
+ with %Payout{} = payout <- Repo.get(Payout, id)

with/1声明了它自己的作用域 * 并 * 将一个卫生机制应用于<-的RHO。这意味着RHO中的赋值被简单地丢弃了。

相关问题