凤凰哪里去defimpl Plug.Exception
Phoenix where to defimpl Plug.Exception
我正在尝试扩展 Phoenix 中的现有异常。
我从文档中看到可以这样做:
defimpl Plug.Exception, for: Ecto.NotSingleResult do
def status(_exception), do: 404
end
但这去哪儿了?
此外,我有两条管道,一条用于 :browser,一条用于 :api
是否可以在一个管道而不是另一个管道中扩展?
你可以把 Plug.Exception
协议的 defimpl
放在任何你想要的地方,只要它所在的文件被 Mix 加载(例如,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
一旦您为数据类型定义了协议的实现,它就是全局的,因此将为两个管道定义它。
我正在尝试扩展 Phoenix 中的现有异常。
我从文档中看到可以这样做:
defimpl Plug.Exception, for: Ecto.NotSingleResult do
def status(_exception), do: 404
end
但这去哪儿了?
此外,我有两条管道,一条用于 :browser,一条用于 :api 是否可以在一个管道而不是另一个管道中扩展?
你可以把 Plug.Exception
协议的 defimpl
放在任何你想要的地方,只要它所在的文件被 Mix 加载(例如,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
一旦您为数据类型定义了协议的实现,它就是全局的,因此将为两个管道定义它。