2015-12-21 69 views
14

我在编程Phoenix书籍中,正在执行该部分以实现登录/登出经过身份验证的用户,并且收到错误我不知道该如何处理:Phoenix error:模块未加载/不可用

mix phoenix.server 
Compiled lib/rumbl.ex 
Compiled lib/rumbl/repo.ex 
Compiled web/channels/user_socket.ex 
Compiled web/web.ex 
Compiled web/models/user.ex 

== Compilation error on file web/router.ex == 
** (UndefinedFunctionError) undefined function: Rumbl.Auth.init/1 (module Rumbl.Auth is not available) 
    Rumbl.Auth.init([repo: Rumbl.Repo]) 
    (plug) lib/plug/builder.ex:198: Plug.Builder.init_module_plug/3 
    (plug) lib/plug/builder.ex:186: anonymous fn/4 in Plug.Builder.compile/3 
    (elixir) lib/enum.ex:1387: Enum."-reduce/3-lists^foldl/2-0-"/3 
    (plug) lib/plug/builder.ex:186: Plug.Builder.compile/3 
    web/router.ex:4: (module) 
    (stdlib) erl_eval.erl:669: :erl_eval.do_apply/6 
    (elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8 


== Compilation error on file lib/rumbl/endpoint.ex == 
** (UndefinedFunctionError) undefined function: Rumbl.Router.init/1 (module Rumbl.Router is not available) 
    Rumbl.Router.init([]) 
    (plug) lib/plug/builder.ex:198: Plug.Builder.init_module_plug/3 
    (plug) lib/plug/builder.ex:186: anonymous fn/4 in Plug.Builder.compile/3 
    (elixir) lib/enum.ex:1387: Enum."-reduce/3-lists^foldl/2-0-"/3 
    (plug) lib/plug/builder.ex:186: Plug.Builder.compile/3 
    (phoenix) expanding macro: Phoenix.Endpoint.__before_compile__/1 
    lib/rumbl/endpoint.ex:1: Rumbl.Endpoint (module) 
    (elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8 


== Compilation error on file web/views/user_view.ex == 
** (CompileError) web/views/user_view.ex:2: module Rumbl.Router.Helpers is not loaded and could not be found 
    expanding macro: Rumbl.Web.__using__/1 
    web/views/user_view.ex:2: Rumbl.UserView (module) 
    (elixir) expanding macro: Kernel.use/2 
    web/views/user_view.ex:2: Rumbl.UserView (module) 
    (elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8 


== Compilation error on file web/views/error_view.ex == 
** (CompileError) web/views/error_view.ex:2: module Rumbl.Router.Helpers is not loaded and could not be found 
    expanding macro: Rumbl.Web.__using__/1 
    web/views/error_view.ex:2: Rumbl.ErrorView (module) 
    (elixir) expanding macro: Kernel.use/2 
    web/views/error_view.ex:2: Rumbl.ErrorView (module) 
    (elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8 


== Compilation error on file web/controllers/auth.ex == 
** (CompileError) web/controllers/auth.ex:3: module Comeonin.Bcypt is not loaded and could not be found 
    (stdlib) erl_eval.erl:669: :erl_eval.do_apply/6 
    (elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8 


== Compilation error on file web/controllers/user_controller.ex == 
** (CompileError) web/controllers/user_controller.ex:2: module Rumbl.Router.Helpers is not loaded and could not be found 
    expanding macro: Rumbl.Web.__using__/1 
    web/controllers/user_controller.ex:2: Rumbl.UserController (module) 
    (elixir) expanding macro: Kernel.use/2 
    web/controllers/user_controller.ex:2: Rumbl.UserController (module) 
    (elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8 


== Compilation error on file web/controllers/page_controller.ex == 
** (CompileError) web/controllers/page_controller.ex:2: module Rumbl.Router.Helpers is not loaded and could not be found 
    expanding macro: Rumbl.Web.__using__/1 
    web/controllers/page_controller.ex:2: Rumbl.PageController (module) 
    (elixir) expanding macro: Kernel.use/2 
    web/controllers/page_controller.ex:2: Rumbl.PageController (module) 
    (elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8 


== Compilation error on file web/views/session_view.ex == 
** (CompileError) web/views/session_view.ex:2: module Rumbl.Router.Helpers is not loaded and could not be found 
    expanding macro: Rumbl.Web.__using__/1 
    web/views/session_view.ex:2: Rumbl.SessionView (module) 
    (elixir) expanding macro: Kernel.use/2 
    web/views/session_view.ex:2: Rumbl.SessionView (module) 
    (elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8 


== Compilation error on file web/views/page_view.ex == 
** (CompileError) web/views/page_view.ex:2: module Rumbl.Router.Helpers is not loaded and could not be found 
    expanding macro: Rumbl.Web.__using__/1 
    web/views/page_view.ex:2: Rumbl.PageView (module) 
    (elixir) expanding macro: Kernel.use/2 
    web/views/page_view.ex:2: Rumbl.PageView (module) 
    (elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8 


== Compilation error on file web/views/layout_view.ex == 
** (CompileError) web/views/layout_view.ex:2: module Rumbl.Router.Helpers is not loaded and could not be found 
    expanding macro: Rumbl.Web.__using__/1 
    web/views/layout_view.ex:2: Rumbl.LayoutView (module) 
    (elixir) expanding macro: Kernel.use/2 
    web/views/layout_view.ex:2: Rumbl.LayoutView (module) 
    (elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8 


== Compilation error on file web/controllers/session_controller.ex == 
** (CompileError) web/controllers/session_controller.ex:2: module Rumbl.Router.Helpers is not loaded and could not be found 
    expanding macro: Rumbl.Web.__using__/1 
    web/controllers/session_controller.ex:2: Rumbl.SessionController (module) 
    (elixir) expanding macro: Kernel.use/2 
    web/controllers/session_controller.ex:2: Rumbl.SessionController (module) 
    (elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8 

我检查和双重检查我的代码对书,但看不到任何东西。
我对项目文件的位置:https://github.com/bordeltabernacle/learning-phoenix/tree/master/rumbl

至于我可以告诉Rumbl.Auth.init功能是有在auth.ex控制器文件,我不知道是什么Rumbl.Router.Helpers文件或如何加载它。当我删除router.ex文件中唯一的新行时,由于该应用程序正在工作,我得到相同的错误。
恐怕我还没有足够的知识来解决这个问题。

回答

8

你有错字在https://github.com/bordeltabernacle/learning-phoenix/blob/master/rumbl/web/controllers/auth.ex

import Comeonin.Bcypt, only: [checkpw: 2] 

应该是

import Comeonin.Bcrypt, only: [checkpw: 2] 
13

我想你应该尝试清理DEPS,然后获取和重新编译之前达到断绝

所以尽量

mix deps.clean --all 
mix deps.get 
mix deps.compile 
mix phoenix.server 

好运

+2

做'mix deps.compile'帮助我的视图模块不再被检测到。 – Vantalk

1

你也可以删除_build目录,并与mix phoenix.server(凤凰城1.2)或mix phx.server(凤凰城1.3)重新启动服务器。

这样做将首次从头开始提取所有依赖关系。我更喜欢这种方法,因为我不需要输入一堆命令,我只需要删除一个目录并重新运行我的终端上的最新命令即mix phx.server。是的,我很懒。

祝你好运。