繁体   English   中英

如何使用在 Phoenix 项目的 lib/ 文件夹中定义的模块?

[英]How do I use a module defined in lib/ folder of Phoenix project?

我在lib/创建了一个 Module ,更具体地说是lib/my_namespace/test_module.exs

这是其中定义的全部内容:

defmodule MyNamespace.TestModule do
  def test do
    "This is a test"
  end
end

在 Phoenix 控制器中调用此模块的test()函数会呈现错误。

** (UndefinedFunctionError) function MyNamespace.TestModule.test/0 is undefined (module MyNamespace.TestModule is not available)
    MyNamespace.TestModule.test()

根据Elixir 1.2.0 Changelog ,我的理解是 Elixir 旨在重新加载lib/目录中的代码,所以我假设我不需要做任何其他事情。

我显然错了,我自己的研究没有产生任何有希望的结果。 我唯一收集到的是我的模块没有进入?loadpath? 而且我不确定要更改什么,所以它在加载路径上。

有人可以伸出援手并指出我应该阅读哪些文档的方向吗?

提前致谢。

.exs文件用于编写脚本不会与项目的其余部分mix编译为字节码。 如果您希望能够从应用程序访问其中定义的模块,您应该将lib/my_namespace/test_module.exs重命名为lib/my_namespace/test_module.ex

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM