在凤凰城,我的路线如下:
scope "/", ManaWeb do
pipe_through [:browser, :auth]
get "/register", RegistrationController, :new
post "/register", RegistrationController, :register
end
但是,我想为最后一个路由(POST(设置一个插件。
使用当前的工具,我将如何做到这一点?
另一个解决方案是直接在控制器中使用插头
defmodule ManaWeb.RegistrationController do
# import the post_plug...
plug :post_plug when action in [:register]
def register(conn, params) do
# ...
end
end
如Phoenix.Router.pipeline/2
文档中所述
每次调用
pipe_through/1
时,新的管道都会附加到先前给定的管道上。
也就是说,这将起作用:
scope "/", ManaWeb do
pipe_through [:browser, :auth]
get "/register", RegistrationController, :new
pipe_through :post_plug
post "/register", RegistrationController, :register
end