私はElixir + Phoenix 1.3を使用しており、Accounts
のコンテキストを定義しています。私はaccounts.ex
ファイルをインデックスとして使用して、他のモジュールでそれが大きくなりすぎないようにするために必要としましたが、作成した他のモジュールから関数をインポートする際に問題があります。エリクサー:__using __/1は定義されていないかプライベートです
次のように私のファイルの構造は次のとおりです。
lib
|- Project
|- Accounts
|- accounts.ex
|- user_api.ex
これは私の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
そして、これは私が輸入しようとしているモジュールである。
# user_api.ex
defmodule Project.Accounts.UserAPI do
alias Project.{Repo}
alias Project.{Accounts.User}
def list_users do
Repo.all(User)
end
end
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
def index(conn, _params) do
users = Accounts.list_users()
render(conn, "index.html", users: users)
end
end
誰もが、彼らが使用可能になるように、他に一つのモジュールからのすべての機能をインポートする方法を知っていますか?前もって感謝します!
'use'ではなく' import'を試しますか? – Dogbert
@Dogbert私はそれを試みたが、私の機能は私のコントローラからまだアクセスできなかった –