我尝试了几次不同的迭代,但在编译时总是出现这个错误:
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但仍然没有运气。
由于您使用的是phoenix框架,因此默认情况下,它会为web相关模块创建一个单独的YourAppWeb
命名空间。在你的情况下,我认为这只是一个拼写错误,应该是这样的:
alias BlackbookWeb.Router.Helpers, as: Routes
(注意Web
部分(