【发布时间】:2017-01-19 18:01:06
【问题描述】:
我正在开发一个 Elixir/Phoenix 应用程序,该应用程序旨在在我的 UserController 控制器中创建一个用户。有一个 /lib/helpers/user_helpers 目录,其中包含许多模块(每个模块都在一个单独的文件中)。这些模块都有一个共同的命名空间UserHelpers.ModuleName。在每个模块中,我都有一个名为apply 的函数,我想将其应用于用户数据。例如,如果我有以下文件结构:
-lib
-helpers
-user_helpers
-module1
-module2
-...
-moduleN-1
-moduleN
module1 和 module2 中的每一个都包含一个函数 apply(user_info),它返回 user_info。在我的UserController 中,我有函数create(conn, params),我想在其中运行以下命令:
user_data
|> UserHelpers.Module1.create
|> UserHelpers.Module2.create
|> ...
|> UserHelpers.ModuleN-1.create
|> UserHelpers.ModuleN.create
但我不确定如何动态加载UserHelpers 文件夹中的所有模块来执行上述操作。有什么建议吗?
【问题讨论】:
-
这些模块是否编译到您的应用程序中(即它们是否在
.ex文件中而不是.exs中)? -
你希望这些被调用的顺序是什么?模块名称是否以数字结尾?是 N > 9(在这种情况下
Enum.sort是不够的)。
标签: erlang elixir phoenix-framework