Подтвердить что ты не робот

Undefined функция: MyApp.Addict.Controller.init/1

Я использую наркомана с Phoenix: 1.0.3, я следую руководству README, чтобы использовать логин в своем приложении. Я получаю следующую ошибку, когда я вызываю логин:

[error] #PID<0.2576.0> running MyApp.Endpoint terminated
Server: localhost:4000 (http)
Request: POST /login
** (exit) an exception was raised:
** (UndefinedFunctionError) undefined function: MyApp.Addict.Controller.init/1 (module MyApp.Addict.Controller is not available)
MyApp.Addict.Controller.init(:login)
(my_app) web/router.ex:1: anonymous fn/1 in MyApp.Router.match/4
(my_app) lib/phoenix/router.ex:255: MyApp.Router.dispatch/2
(my_app) web/router.ex:1: MyApp.Router.do_call/2
(my_app) lib/my_app/endpoint.ex:1: MyApp.Endpoint.phoenix_pipeline/1
(my_app) lib/plug/debugger.ex:90: MyApp.Endpoint."call (overridable 3)"/2
(my_app) lib/phoenix/endpoint/render_errors.ex:34: MyApp.Endpoint.call/2
(plug) lib/plug/adapters/cowboy/handler.ex:15: Plug.Adapters.Cowboy.Handler.upgrade/4
(cowboy) src/cowboy_protocol.erl:442: :cowboy_protocol.execute/4
4b9b3361

Ответ 1

Это произошло из-за моей следующей ошибки в router.ex:

  scope "/", MyApp do
    addict :routes
  end

Это должно было быть:

  scope "/" do
    addict :routes
  end

Ответ 2

В моем случае ошибка была решена путем запуска:

$ mix deps.compile --force 

Контроллер, который произвел ошибки, существовал некоторое время, и был контрольный тест, который не сообщал о каких-либо ошибках.

Ответ 3

Я не знаком с Phoenix, но сообщение гласит, что у вас нет модуля MyApp.Addict.Controller.

И как следует из названия, вы несете ответственность за его реализацию.