UndefinedFunctionError - 在phoenix/ecto中的iex别名

Dou*_*oug 4 elixir ecto phoenix-framework

当我发射

iex -S mix phoenix.server
Run Code Online (Sandbox Code Playgroud)

我希望能够运行如下命令:

iex(1) > Repo.all(MyModel)
Run Code Online (Sandbox Code Playgroud)

但是,这给了我这个错误:

(UndefinedFunctionError) undefined function: Repo.all/1 (module Repo is not available)
Run Code Online (Sandbox Code Playgroud)

如果我用我的ProjectName为我的调用添加前缀,它可以工作:

iex(1) > ProjectName.Repo.all(ProjectName.MyModel)
Run Code Online (Sandbox Code Playgroud)

如何避免在iex中使用我的项目名称为我的呼叫添加前缀?

Dog*_*ert 7

如果您向该文件添加代码.iex.exs,则只要您iex在该目录中启动它,它就会被执行.所以如果你只是将它添加到你的.iex.exs:

alias ProjectName.{Repo, MyModel}
Run Code Online (Sandbox Code Playgroud)

你将能够访问ProjectName.Repoas RepoProjectName.MyModelas MyModel.