我正在使用Elixir + Phoenix 1.3并定义了Accounts
上下文。我想将accounts.ex
文件用作其他模块中要求的索引,以防止它变得太大,但我无法从我创建的其他模块中导入功能。
我的文件结构如下:
lib
|- Project
|- Accounts
|- accounts.ex
|- user_api.ex
Run Code Online (Sandbox Code Playgroud)
这是我的accounts.ex
文件的外观:
# accounts.ex
defmodule Project.Accounts do
@moduledoc """
The Accounts context.
"""
import Ev2Web
import Ecto.Query, warn: false
alias Project.{Accounts}
use Accounts.UserAPI
end
Run Code Online (Sandbox Code Playgroud)
这是我要导入的模块:
# user_api.ex
defmodule Project.Accounts.UserAPI do
alias Project.{Repo}
alias Project.{Accounts.User}
def list_users do
Repo.all(User)
end
end
Run Code Online (Sandbox Code Playgroud)
我希望能够导入我的Project.Accounts.UserAPI
模块,以便可以Project.Accounts.list_users()
在我的控制器中进行引用,但是未导入这些模块。我得到了错误function Project.Accounts.UserAPI.__using__/1 is undefined or private
。
我的控制器如下所示:
defmodule ProjectWeb.UserController do
use ProjectWeb, :controller
alias Project.Accounts …
Run Code Online (Sandbox Code Playgroud)