我想写一个Plug
这将验证用户(实际上检查会话)。我无法获得重定向路线。我认为这是因为路由生成发生在这个插件被激活之后。凤凰框架内的插件内重定向
无论如何,我得到了这样的错误:undefined function TestApp.page_path/2
在常规情况下page_path/2
存在明显和有效。
defmodule TestApp.Plugs.Authenticate do
import Plug.Conn
def init(default), do: default
def call(conn, _) do
user = Plug.Conn.get_session(conn, :current_user)
if not is_nil(user) do
assign(conn, :user, user)
else
conn
|> Phoenix.Controller.put_flash(:warning, "User is not authenticated.")
|> Phoenix.Controller.redirect(to: TestApp.page_path(conn, :index))
|> halt
end
end
end
什么是page_path?如果它是一个函数,你可以发布它 –
它生成内部路由器与'get“/”,PageController,:index' –
这是否工作? Phoenix.Controller.redirect(到:TestApp.Router.Helpers.page_path(conn,:index,“hello world”)) –