凤凰1.3(Elixir)错误:Myapp.Users.User .__ struct __ / 0未定义,无法扩展struct Myapp.Users.User

时间:2017-06-06 21:14:37

标签: data-structures elixir phoenix-framework

按照本教程,尝试使用 Phoenix v1.3 构建API:
https://dreamconception.com/tech/phoenix-full-fledged-api-in-five-minutes
确保按照每一步操作

当我尝试运行mix ecto.setup

我收到以下错误: error

Compiling 17 files (.ex)

== Compilation error on file lib/myapp/users/users.ex ==
** (CompileError) lib/myapp/users/users.ex:65: Myapp.Users.User.__struct__/0 is undefined, cannot expand struct Myapp.Users.User
    (stdlib) lists.erl:1354: :lists.mapfoldl/3
    lib/myapp/users/users.ex:65: (module)
    (stdlib) erl_eval.erl:670: :erl_eval.do_apply/6
    (elixir) lib/kernel/parallel_compiler.ex:117: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/1

lib/myapp/users/users.ex非常大:https://github.com/nelsonic/phoenix-api-example/blob/master/lib/myapp/users/users.ex#L65

GitHub上的完整代码:https://github.com/nelsonic/phoenix-api-example

任何帮助调试它都会非常赞赏。

1 个答案:

答案 0 :(得分:3)

所以我注意到了一些事情:

  1. 您在录制后已将上下文命名为。您应该在记录所属的想法之后命名您的上下文。像AuthenticationAccount

  2. 之类的东西
  3. 在拥有Account上下文的Phoenix 1.3应用程序中构建#1,您可能拥有与该上下文关联的用户记录。在这种情况下,您在lib / myapp / account / users.ex中定义了Myapp.Account.Users。这是你的结构来自的地方。

  4. 我认为你在这里结束的方式是,上下文的名称与你的记录相同,这会造成一些混乱。在Users上下文的第9行,您要对Myapp.Users.User进行别名,但该模块永远不会定义。