获取配置的一部分,没有与之关联的模块

时间:2018-03-17 01:37:34

标签: elixir phoenix-framework

我可以得到这个配置:

  config :my_app, MyApp.Endpoint,
    url: [host: "localhost"],
    secret_key_base: "fdsfdsfd",
    # ..............

这样

cfg = Application.get_env(:my_app, MyApp.Endpoint)

我如何获得此配置部分:

  config :my_app,
    a: 123,
    b: 456
    # ..............

因为没有这样的功能:

cfg = Application.get_env(:my_app) # no such function

1 个答案:

答案 0 :(得分:2)

您可以使用Application.get_all_env/1。随着

config :my_app,
  a: 123,
  b: 456

我得到的输出是:

iex(1)> Application.get_all_env(:my_app)
[b: 456, a: 123]

编辑:如果你想忽略密钥是Elixir模块名称的所有配置,你可以这样做:

Application.get_all_env(:my_app)
|> Enum.reject(fn {key, value} ->
  is_atom(key) && Atom.to_string(key) |> String.starts_with?("Elixir.")
end)
|> IO.inspect