Phoenix - 生成模型迁移时的编译错误

时间:2016-11-28 18:10:12

标签: phoenix-framework

我正在通过凤凰网站上的指南工作,我在Ecto模型上的页面 - http://www.phoenixframework.org/docs/ecto-models - 但我收到一个错误,我不知道如何解决...

当我运行mix phoenix.gen.html User users name:string email:string bio:string number_of_pets:integer * creating priv/repo/migrations/20150409213440_create_user.exs时,所有文件都已正确创建:

* creating web/controllers/user_controller.ex
* creating web/templates/user/edit.html.eex
* creating web/templates/user/form.html.eex
* creating web/templates/user/index.html.eex
* creating web/templates/user/new.html.eex
* creating web/templates/user/show.html.eex
* creating web/views/user_view.ex
* creating test/controllers/user_controller_test.exs
* creating web/models/user.ex
* creating test/models/user_test.exs
* creating priv/repo/migrations/20161128174142_create_user.exs

但我的服务器控制台立即吐出错误:

Compiling 3 files (.ex)

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

并且mix ecto.migrate失败,同样返回此错误(尽管将用户资源添加到路由中)。

这实际上是我第二次经历这个过程,而且我第一次这样做,一切正常。据我所知,这次我做的一切都完全相同(虽然我当然可能会弄错)。

我没有足够的经验与凤凰城解释此错误或知道如何解决问题。有人可以帮忙吗?

*更新* 事实证明问题来自于我的app模块名为TestApp1,但凤凰城有一个错误,其中下划线插入带有尾随数字的名称中...所以它正在寻找TestApp_1 。我能够通过简单地浏览生成的文件并删除下划线来解决这个问题。有关该错误的详细说明,请参阅下面Dogbert的评论。

1 个答案:

答案 0 :(得分:0)

事实证明问题来自于我的app模块名为TestApp1,但凤凰城有一个错误,当生成文件时,下划线插入带有尾随数字的名称...所以它正在寻找TestApp_1。我能够通过简单地浏览生成的文件并删除下划线来解决这个问题。有关该错误的详细说明,请参阅Dogbert的评论。