我想寫一個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」)) –