Phoenix 1.4 Как использовать псевдоним Routes.page_path в Plug - PullRequest
0 голосов
/ 28 ноября 2018

Я пробовал пару разных итераций, но я продолжаю получать эту ошибку при компиляции:

Routes.session_path/2 is undefined (module Routes is not available)

Мой код:

defmodule Blackbook.Plugs.RequireAuth do
    import Plug.Conn
    import Phoenix.Controller
    alias Blackbook.Router.Helpers, as: Routes

    def init(_params) do
    end

    def call(conn, _params) do
        if conn.assigns[:current_user] do
            conn
        else
            conn
            |> put_flash(:error, "You must be logged in.")
            |> redirect(to: Routes.session_path(conn, :new))
            |> halt()
        end
    end
end

В Phoenix 1.4 это немного отличается, пробовалссылаясь на документацию здесь https://hexdocs.pm/phoenix/Phoenix.Router.html но все равно не повезло.

1 Ответ

0 голосов
/ 28 ноября 2018

Поскольку вы используете , по умолчанию создается отдельное пространство имен YourAppWeb для веб-модулей.В вашем случае, я считаю, что это просто опечатка, и это должно быть так:

alias BlackbookWeb.Router.Helpers, as: Routes

(обратите внимание на Web часть)

...