繁体   English   中英

**(RuntimeError)预期的操作/ 2返回一个Plug.Conn,所有插件都必须接收一个连接(conn)并返回一个连接

[英]** (RuntimeError) expected action/2 to return a Plug.Conn, all plugs must receive a connection (conn) and return a connection

def create_trans(conn, _params) do

  address = __MODULE__.get_add()
  card = __MODULE__.get_card()

  case Alpha.beta(card, [billing_address: address]) do
    {:ok, result}     -> render conn,"purchase.json",%{purchase: result}
    {:error, reason}  -> render conn,"purchase.json",%{purchase: reason} 
  end

end

上面的代码给了我下面的错误,我错过了什么。

**(RuntimeError)预期的操作/ 2返回一个Plug.Conn,所有插件都必须接收一个连接(conn)并返回一个连接

也许提供更多信息Alpha.beta/2应该返回什么。 通常,您的错误指出case并未涵盖所有情况 考虑将_作为最后一个方案_ ,将与其余方案匹配。

另外,如果您将Alpha.beta/2结果分配给变量,然后呈现结果而不使用case ,则可以简单地使此代码更具可读性和DRY, Alpha.beta/2是您基本上在这两种情况下都这样做。

{_, result} = Alpha.beta(card, [billing_address: address)
render(conn, "purchase.json", %{purchase: result}

但是在这种情况下,您必须100%确保此Alpha.beta/2返回一个元组,该元组与上面的模式匹配相匹配,并且根据您的问题,不是很确定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM