elixir phoenix - put_flash/3 中塞
elixir phoenix - put_flash/3 in the plug
我创建了一个 plug
来检查用户是否已经创建了个人资料,如果他们还没有创建个人资料,则将他们重定向到 /profiles/new
页面:
Plug.CheckProfile
case profiles do
nil ->
conn |> put_flash(:info, "No profile found.") |> redirect(to: "/profiles/new") |> halt()
profiles ->
assign(conn, :profiles, profiles)
end
但我在某处读到 put_flash
通常用于控制器,
这样做的正确方法是什么?
plug
有替代品吗?
控制器只是另一个插头。这不是一个非常常见的用例——您可以在如何实现该行为方面有一些回旋余地。 plug/middleware 似乎是一个干净的解决方案。从本质上讲,它与您看到的根据用户是否登录而变化的条件重定向并没有什么不同。
我创建了一个 plug
来检查用户是否已经创建了个人资料,如果他们还没有创建个人资料,则将他们重定向到 /profiles/new
页面:
Plug.CheckProfile
case profiles do
nil ->
conn |> put_flash(:info, "No profile found.") |> redirect(to: "/profiles/new") |> halt()
profiles ->
assign(conn, :profiles, profiles)
end
但我在某处读到 put_flash
通常用于控制器,
这样做的正确方法是什么?
plug
有替代品吗?
控制器只是另一个插头。这不是一个非常常见的用例——您可以在如何实现该行为方面有一些回旋余地。 plug/middleware 似乎是一个干净的解决方案。从本质上讲,它与您看到的根据用户是否登录而变化的条件重定向并没有什么不同。