web-dev-qa-db-ja.com

フェニックスエラー:モジュールがロードされていない/使用できません

プログラミングフェニックスの本に従って、認証されたユーザーのログイン/ログアウトを実装するセクションに取り組んでいますが、どうすればよいかわからないエラーが表示されます。

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ファイルの唯一の新しい行を削除すると、アプリが機能していたため、同じエラーが発生します。
自分でこれをトラブルシューティングするのに十分な知識がありません。

15

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]
8

Depをクリーンアップしてから、サーバーをアップする前に再度コンパイルしてコンパイルする必要があると思います。

だから試して

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

幸運を

18
Lê Minh Duy

_buildディレクトリを削除し、mix phoenix.server(Phoenix 1.2)またはmix phx.server(Phoenix 1.3)を使用してサーバーを再起動することもできます。

これを行うと、すべての依存関係が最初から最初からフェッチされます。たくさんのコマンドを入力する必要がないので、この方法を好みます。ディレクトリを削除して、ターミナルで最近のコマンドを再実行するだけです。これは、mix phx.serverです。ええ、私は怠惰です。

幸運を。

1
dsignr

私の場合、testディレクトリではなくlibディレクトリに誤ってモジュールを作成したため、このエラーが発生しました。 libディレクトリに移動すると修正されました。

0
Zoltán