别名 IEX 中模块/命名空间的所有内容
Posted
技术标签:
【中文标题】别名 IEX 中模块/命名空间的所有内容【英文标题】:Alias all contents of a module/namepsace in IEX 【发布时间】:2016-04-02 22:27:32 【问题描述】:按照this question 中关于如何使用当前项目的依赖项加载 iex 的建议,我能够以非常高效的方式使用 phoenix 框架依赖项。但是,必须为每件事情提供 Phoenix 项目的命名空间有点乏味。
我希望能够输入Repo.all(User)
,而不是输入MyApp.Repo.all(MyApp.User)
。我可以使用alias MyApp.Repo, as: Repo
单独为每件事起别名,但有没有办法一次性为所有事情做这件事?
【问题讨论】:
【参考方案1】:您可以简单地调用 alias MyApp.Repo
而不是 MyApp.Repo, as: Repo
— 它将使用模块名称的最后一部分。
在 Elixir 1.2 中,您可以通过一次调用将多个子模块别名为它们自己的名称:alias MyApp.Repo, User
您还可以选择使用.iex.exs
文件来设置别名(根据the IEx docs)。在这种情况下,我不推荐它,因为您冒着命名冲突的风险。在 iex 会话中调用 alias
更加明确。
【讨论】:
看起来效果很好,谢谢!我认为在每个项目的基础上对 iex.exs 文件中的 phoenix 模型进行别名处理将得到我所需要的,而不会冒太多冲突的风险。以上是关于别名 IEX 中模块/命名空间的所有内容的主要内容,如果未能解决你的问题,请参考以下文章