我正在制作一个Elixir/Phoenix应用程序,用于在我的UserController
控制器中创建用户。有一个/lib/helpers/user_helpers
目录有许多模块(每个都在一个单独的文件中)。这些模块都有一个通用名称空间UserHelpers.ModuleName
。在这些模块中的每一个中,我都有一个名为apply
的函数,我想将其应用于用户数据。例如,如果我有以下文件结构:Elixir列出名称空间中的所有模块
-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')? – Dogbert
你想以什么顺序调用这些命令?模块名称是否以数字结尾? N> 9(在这种情况下'Enum.sort'不够用)。 – Dogbert