我在lib/
內部創建了一個模塊,更具體地說是lib/my_namespace/test_module.exs
。如何使用Phoenix項目的lib /文件夾中定義的模塊?
這是所有在其內定義:
defmodule MyNamespace.TestModule do
def test do
"This is a test"
end
end
調用菲尼克斯控制器內該模塊的功能test()
呈現錯誤。
** (UndefinedFunctionError) function MyNamespace.TestModule.test/0 is undefined (module MyNamespace.TestModule is not available)
MyNamespace.TestModule.test()
按照Elixir 1.2.0 Changelog,這是我的理解是藥劑是爲了重新加載代碼lib/
目錄,所以我的假設是,我是不會需要做的任何事情。
我顯然是錯的,我自己的研究並沒有產生任何有希望的結果。我收集的唯一的事情是我的模塊沒有進入?loadpath?而且我不確定要更改哪些內容,因此它位於加載路徑上。
有人可以伸出援助之手,並指出我應該讀什麼文件的方向?
在此先感謝。
嘗試將文件從'.exs'重命名爲'.ex'。 – Dogbert
謝謝@Dogbert。這工作。你知道我在哪裏可以閱讀關於這個約定的任何文檔嗎?如果是這樣,你可以與我分享嗎?此外,請提交答案,以便我可以將其標記爲正確。再次感謝! – John
不幸的是,我找不到比http://elixir-lang.org/getting-started/modules.html#scripted-mode更好的東西(它沒有提到'mix'不能編譯.exs文件)。 – Dogbert