【发布时间】:2017-11-20 08:59:16
【问题描述】:
在我的控制器中,我有 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 解决方案,所以我不需要在我的控制器上重复它。
谢谢
【问题讨论】:
-
当您调用
apply时,只需将conn.assigns.current_company添加到该列表中? -
你的意思是这样的:
apply(__MODULE__, action_name(conn), [conn, conn.params, conn.assigns.current_user, conn.assigns.current_company]? -
是的。它不适合你吗?
-
我收到
function Web.AssetController.show/4 is undefined or private. Did you mean one of:错误。这是节目:show(conn, %{"id" => id}, current_user) -
更新您正在调用的函数(在本例中为
show,以及所有其他函数。)
标签: controller elixir phoenix-framework dry