2017-10-27 8 views
0

私は2つのモジュールを持っていますが、どちらも「使用する」必要がありますが、両方ともtrace/3関数を定義しています。 「ローカル関数との競合」エラーが発生することなく、両方をどのように使用できますか? exceptは機能しません。モジュールを '使用する'方法はありますが、1つの機能は省略しますか?

私はトレース機能を使用しません。

注:これは、Phoenix.ConnCaseモジュールとTeslaモジュールに関係します。

+0

'テスラを使用し、除い:[:トレース]' https://github.com/teamon/tesla/blob/master/lib/teslaの迅速な読み取りに基づいて動作するはずです.ex#L198。 – Dogbert

+0

私は直感的に 'use'コマンドのオプションは使用しているモジュールによって処理されていることを理解していませんでした。ここでは 'alias'オプションはエイリアスマクロによって処理されます。 – raarts

+0

'' Kernel.use/2'(https://hexdocs.pm/elixir/Kernel.html#use/2)マクロによって 'use'マクロのオプションが明らかに処理されます。 – mudasobwa

答えて

0

useでこれを行う一般的な方法はありません。モジュールは、インポートされた関数の除外を明示的にサポートする必要があります。 Phoenix.ConnTestused、MyApp.ConnCase)は、except,but Tesla doesをサポートしていないようです。これは問題を解決するはずです。ただ、use Teslaexcept: [:trace]を追加します。

use Tesla, except: [:trace] 
関連する問題