【问题标题】:Alias all contents of a module/namepsace in IEX别名 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 单独为每件事起别名,但有没有办法一次性为所有事情做这件事?

【问题讨论】:

    标签: elixir phoenix-framework elixir-mix elixir-iex


    【解决方案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 模型进行别名处理将得到我所需要的,而不会冒太多冲突的风险。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-27
    • 2011-06-26
    • 1970-01-01
    • 2016-04-07
    • 1970-01-01
    • 2014-01-17
    相关资源
    最近更新 更多