如何在UserSocket模块中重载连接?

时间:2016-06-15 09:29:05

标签: elixir phoenix-framework

我试图通过在签名中使用不同的地图来重载connect模块上的UserSocket方法,但是,它没有工作,并且服务器将无法连接使用的地图是..这是我试图做的事情:

def connect(%{"token" => sent_token }, socket), do: connect(%{"token" => sent_token, "owner_id" => 1 }, socket)
def connect %{"token" => sent_token, "owner_id" => pased_owner_id }, socket do

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

Elixir执行与模式匹配的第一个函数定义,并忽略具有除模式中指定的键之外的键的Map。如果您将带有DECLARE的子句放在另一个子句之前,您应该得到您想要的行为:

END;

演示:

"owner_id"