2015-12-06 70 views
2

我想在鳳凰城擴大現有的例外。菲尼克斯在哪裏defimpl Plug.Exception

defimpl Plug.Exception, for: Ecto.NotSingleResult do 
    def status(_exception), do: 404 
end 

但是,在這不走:

我從文檔做到這一點見過?

此外,我有兩個管道,一個用於:瀏覽器,一個用於:api 是否可以在一個管道而不是另一個管道中擴展?

回答

7

你可以把defimpl爲任何你想要的Plug.Exception協議,只要它在被混合加載的文件(例如,文件libweb)。例如,你可以用這個內容創建lib/my_app/plug_exception_implementations.ex

defimpl Plug.Exception, for: Ecto.NotSingleResult do 
    def status(_exception), do: 404 
end 

# other `defimpl Plug.Exception`s here if needed 

一旦你定義一個數據類型的協議的實現,它是全球因此將兩個管道來定義。