首页 > 解决方案 > elixir phoenix - put_flash/3 在插件中

问题描述

我创建了一个来检查用户是否已经创建了配置文件,如果他们还没有配置文件,则将他们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吗?

标签: elixirplugphoenix-live-view

解决方案


控制器只是另一个插头。这不是一个超级常见的用例——您可以在如何实现该行为方面留有余地。插件/中间件似乎是一个干净的解决方案。从本质上讲,它与您看到的条件重定向并没有什么不同,条件重定向取决于用户是否登录。


推荐阅读