【问题标题】:How to share a variable between 2 config files?如何在 2 个配置文件之间共享一个变量?
【发布时间】:2021-05-25 19:13:30
【问题描述】:

config/config.exs 有这个:

a1 = 123

# [.........]
# using a1 here ....
# key123: a1

import_config("config2.exs)

但在config/config2.exs 中,变量a1 将不可见。

为什么不呢?以及如何使其在config/config2.exs 中也可见? 简单的解决方案,没有不必要的复杂性。

【问题讨论】:

    标签: elixir phoenix-framework


    【解决方案1】:

    如果key123 接受一个整数,我认为它需要像System.get_env("A1_VAR") |> String.to_integer() 那样在配置中添加字符串到int 转换。

    【讨论】:

      【解决方案2】:

      您可以使用环境变量来存储您的值并在配置之间共享它 - 所以在config/config.exs

      config :myapp, MyApp.Module,
         key123: System.get_env("A1_VAR")
      
      import_config("config2.exs)
      

      config/config2.exs 中,您可以用同样的方式检索它。

      编辑

      忘了提及,如果您想在第一个配置中操作声明的 a1 变量 - 您可以使用 System.out_env/2 来“存储”它,然后当然是 System.get_env/2 在配置 2 中检索它。

      【讨论】:

      • 除了通过某种“外部”存储机制传递变量之外,我真的看不出另一种(简单)方法。 DETS怎么样?即:您正在第一个配置中启动您的变量,对它做一些事情,写入 DETS,在新配置中检索它并再次使用。
      • @Kakaraji 您能否解释一下为什么要删除您的 cmets 并否决您问题的有效答案?它如何帮助建立一个健康、友善的 Elixir 开发者社区?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-24
      • 1970-01-01
      • 2019-05-28
      • 1970-01-01
      • 2019-07-11
      • 2017-09-14
      相关资源
      最近更新 更多