Elixir 如何使用Addict修复Phoenix应用程序中的错误以进行用户身份验证
我正在Phoenix应用程序中使用Addict实现用户身份验证,请参见 下面是我得到的错误:Elixir 如何使用Addict修复Phoenix应用程序中的错误以进行用户身份验证,elixir,phoenix-framework,Elixir,Phoenix Framework,我正在Phoenix应用程序中使用Addict实现用户身份验证,请参见 下面是我得到的错误: [error] #PID<0.549.0> running Myapp.Endpoint terminated Server: localhost:4000 (http) Request: GET /register ** (exit) an exception was raised: ** (UndefinedFunctionError) function Myapp.Addict
[error] #PID<0.549.0> running Myapp.Endpoint terminated
Server: localhost:4000 (http)
Request: GET /register
** (exit) an exception was raised:
** (UndefinedFunctionError) function Myapp.Addict.AddictController.init/1 is undefined (module Myapp.Addict.AddictController is not available)
Myapp.Addict.AddictController.init(:register)
(myapp) web/router.ex:1: anonymous fn/1 in Myapp.Router.match_route/4
(myapp) lib/phoenix/router.ex:261: Myapp.Router.dispatch/2
(myapp) web/router.ex:1: Myapp.Router.do_call/2
(myapp) lib/myapp/endpoint.ex:1: Myapp.Endpoint.phoenix_pipeline/1
(myapp) lib/plug/debugger.ex:123: Myapp.Endpoint."call (overridable 3)"/2
(myapp) lib/myapp/endpoint.ex:1: Myapp.Endpoint.call/2
(plug) lib/plug/adapters/cowboy/handler.ex:15: Plug.Adapters.Cowboy.Handler.upgrade/4
(cowboy) /Users/development/Desktop/myapp/deps/cowboy/src/cowboy_protocol.erl:442: :cowboy_protocol.execute/4
为什么会发生此错误?我如何解决此问题
提前感谢。将模块别名传递给
范围
会将该模块预先发送给其中定义的所有路由的所有控制器,包括addict
路由,这将使它们指向错误的控制器(Myapp.addict.addict controller
而不是addict.addict controller
)。您可以在不使用alias模块的情况下将addict:routes
移动到另一个作用域来修复此问题:
scope "/", Myapp do
pipe_through :browser # Use the default browser stack
get "/", PageController, :index
get "/about", PageController, :about
get "/thanks", PageController, :thanks
resources "/projects", ProjectController
end
scope "/" do
addict :routes
end
将模块别名传递给
scope
会将该模块预先发送给其中定义的所有路由的所有控制器,包括addict
路由,这将使它们指向错误的控制器(Myapp.addict.addict controller
而不是addict.addict controller
)。您可以在不使用alias模块的情况下将addict:routes
移动到另一个作用域来修复此问题:
scope "/", Myapp do
pipe_through :browser # Use the default browser stack
get "/", PageController, :index
get "/about", PageController, :about
get "/thanks", PageController, :thanks
resources "/projects", ProjectController
end
scope "/" do
addict :routes
end
你可以发布完整的错误消息,包括stacktrace吗?你也可以发布你路由器的源代码(
web/router.ex
)?web/router.ex的源代码也可以发布:)如果你从那里删除addict:routes
,然后添加另一个作用域(在当前作用域结束后),像这样:作用域“/”do addict(:routes)end
?(该名称空间模块可能会导致此问题。)确实如此。发布作为答案,我会接受-谢谢!你可以发布完整的错误消息,包括stacktrace吗?你也可以发布你路由器的源代码(web/router.ex
)?web/router.ex的源代码也可以发布:)如果你从那里删除addict:routes
,然后添加另一个作用域(在当前作用域结束后),像这样:作用域“/”do addict(:routes)end
?(该名称空间模块可能会导致此问题。)确实如此。发布作为答案,我会接受-谢谢!