私はPlug
を書いて、ユーザーを認証します(実際にセッションを確認しています)。リダイレクトルートを取得できません。私はそれがこのプラグがアクティブになった後にルート生成が起こるためだと思う。 page_path/2
は明らかに存在し、機能し、通常の状況ではundefined function TestApp.page_path/2
Phoenixフレームワーク内のプラグ内部のリダイレクト
:
はとにかく私はこのようなエラーが発生しました。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")) –