【发布时间】:2019-11-18 16:11:49
【问题描述】:
如果满足“some_condition”,我想将用户重定向到某个页面。例如,如果根本没有创建文章,则用户必须创建文章。重定向必须发生在其中的所有控制器和操作中。
我有一个插头:
defmodule P1 do
alias Plug.Conn
def init(opts), do: opts
def call(conn, opts) do
if some_condition do
Phoenix.Controller.redirect(conn, to: MyApp.Router.Helpers.article_path(conn, :new))
|> Plug.Conn.halt()
end
end
end
一个问题是
a) 它将所有请求重定向到“article_path/new”,包括对 js、css 等文件的请求。也就是说,它会在一条路线上连续发生多次。而不是我想要的一个重定向。
b) 页面不会被渲染。当我以这种方式重定向用户时,它将显示为一个空白页面
如何解决这个问题?
【问题讨论】: