我在大约一年内第一次制作了一个新的凤凰应用程序,并尝试处理有关上下文等方面的所有变化。
我的第一项业务是创建一个数据库表,我可以在其中跟踪电子邮件注册,因此我将此命令放入:
mix phx.gen.html Signups Email emails email:string name:string data:text
然后我将新路由放在router.ex中。但即使在我迁移之前,我也会收到错误:
== Compilation error in file lib/appname/views/email_view.ex ==
** (CompileError) lib/appname/views/email_view.ex:2: module AppnameWeb is not loaded and could not be found
(elixir) expanding macro: Kernel.use/2
lib/appname/views/email_view.ex:2: AppnameWeb.EmailView (module)
(elixir) lib/kernel/parallel_compiler.ex:121: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/1
我的应用程序中有Appname.Web
个其他位置,但是生成器创建了一个名为AppnameWeb的新模块,它似乎无法加载到任何地方?
如果我在我的项目中找到并替换Appname.Web到AppnameWeb,它可以让我迁移,但仍然无法加载新的电子邮件索引页。
Request: GET /emails
** (exit) an exception was raised:
** (UndefinedFunctionError) function Appname.EmailController.init/1 is undefined (module Appname.EmailController is not available)
Appname.EmailController.init(:index)
(appname) web/router.ex:1: anonymous fn/1 in Appname.Router.__match_route__/4
(phoenix) lib/phoenix/router.ex:278: Phoenix.Router.__call__/1
(appname) lib/appname/endpoint.ex:1: Appname.Endpoint.plug_builder_call/2
(appname) lib/plug/debugger.ex:99: Appname.Endpoint."call (overridable 3)"/2
(appname) lib/appname/endpoint.ex:1: Appname.Endpoint.call/2
(plug) lib/plug/adapters/cowboy/handler.ex:15: Plug.Adapters.Cowboy.Handler.upgrade/4
(cowboy) /Users/user/Dev/appname/deps/cowboy/src/cowboy_protocol.erl:442: :cowboy_protocol.execute/4
我应该同时拥有Appname.Web和AppnameWeb吗?我不确定应该再去哪里了,而且发电机产生破损代码的事实并没有帮助......