1

神秘的错误信息

在尝试ueberauth为我们的项目实施时,我们遇到了以前从未见过的错误消息。(请注意,这并非特定ueberauth于此错误,在任何未能包含控制器“助手”的控制器中都会出现

确切的错误信息是:

== Compilation error on file web/controllers/auth_controller.ex ==
** (CompileError) web/controllers/auth_controller.ex:4: undefined function plug/1
    (stdlib) erl_eval.erl:670: :erl_eval.do_apply/6
    (elixir) lib/kernel/parallel_compiler.ex:117: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/1

代码快照:https ://github.com/dwyl/auth/pull/9/commits/e2550c558832ff9c4a442b570224a1ccacbfdb02

回答:

忘记:controller在我们的控制器文件中包含助手...

use Auth.Web, :controller

感谢 Sam Houston 查看代码并发现如何修复它。 https://github.com/dwyl/auth/pull/9/commits/823f7d79561f733a9d131b26a3f6a4d74da59842

case向某人发布此问题 + 答案会else在他们的 Phoenix 项目中看到此错误消息,并且在谷歌搜索时找不到答案。

4

2 回答 2

0

宏在 Plug.Builder中plug定义,您可以在使用前导入它:

use Plug.Builder

plug :any_plug_you_like

在 Phoenix 的情况下,它定义了在Phoenix.Controller.Pipeline哪个注入中Phoenix.Controller再次通过use Auth.Web, :controller.

于 2021-04-01T00:07:45.073 回答
0

分享答案供其他人解读。

use Auth.Web, :controller
于 2017-04-06T09:30:05.053 回答