在我的控制器中我有current_company
和`current_user。用户必须在每次请求时向当前公司发送。
所以我想,用户需要在标题中发送它。
所以在一个请求中,我有令牌(jwt)和公司。现在在我的控制器中我有
def action(conn, _) do
apply(__MODULE__, action_name(conn),
[conn, conn.params, conn.assigns.current_user])
end
我在函数调用中提取current_user
:def show(conn, %{"id" => id}, current_user) do
我使用它,现在我必须使用它
company = conn.assigns.current_company
以获得每个职能部门的现有公司。
一切正常,我想看看是否有像我为current_user所做的DRY解决方案,所以我不需要在我的控制器上重复它。
由于
答案 0 :(得分:3)
您可以将任意数量的字词添加到您传递的列表中作为apply
的最后一个参数。 apply
将使用与该列表中一样多的参数调用相关函数。所以,你可以这样做:
apply(__MODULE__, action_name(conn),
[conn, conn.params, conn.assigns.current_user, conn.assigns.current_company])
然后更改该模块中的所有操作函数以接受4个参数。第四个将是现在的公司价值。