2017-01-30 70 views
0
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,所有的插头必须接受一个连接(康涅狄格州),并返回一个连接

**(RuntimeError)预期的行动/ 2返回一个Plug.Conn,所有的插头必须接受一个连接(康涅狄格州),并返回一个连接

+0

看起来你并没有涵盖所有的可能性 - 在这个'case'结尾尝试做'_'的情况。 – PatNowak

回答

0

也许提供更多信息什么Alpha.beta/2应该返回。一般而言,您的错误表示并非每种情况都在您的case区块中包含。考虑使用最后的场景_,这将与其余的相匹配。

你也可以简单地使此代码更具可读性和DRY如果您分配Alpha.beta/2该变量的结果,然后渲染的结果,而不是使用case的,如果你基本上做同样在这两种方案。

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

但在这种情况下,你必须要100%肯定,这Alpha.beta/2返回一个元组,这在上面的模式匹配,并根据您的问题相匹配,这是不那么肯定。

相关问题