我正试图在凤凰城扩展现有的例外.
我从文档中看到过这样做:
defimpl Plug.Exception, for: Ecto.NotSingleResult do def status(_exception), do: 404 end
但这又往哪里了?
另外,我有两个管道,一个用于:浏览器,一个用于:api是否可以在一个管道而不是另一个管道中扩展?
你可以把defimpl
在Plug.Exception
任何你想要的协议,只要该文件是在被混合装载(例如,文件lib
或 web
).例如,您可以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
一旦为数据类型定义协议的实现,它就是全局的,因此将为两个管道定义它.