在路线文档中。我读到我们可以得到这样的路径:
iex> import HelloWeb.Router.Helpers
iex> alias HelloWeb.Endpoint
iex> user_path(Endpoint, :index)
"/users"
我们是否可以从控制器user_path
中获取User
这样的
user_path
由于
答案 0 :(得分:1)
这不是公共API,将来可能会更改,但MyApp.Router.__routes__/0
可用于获取所有路由。从那里你可以通过控制器过滤并获得指向该控制器的所有路线。
我的申请表中有一个标准resources "/posts", PostController
。这是该应用程序的一些iex -S mix
输出:
iex(1)> MyApp.Router.__routes__ |> hd
%Phoenix.Router.Route{
assigns: %{},
helper: "page",
host: nil,
kind: :match,
opts: :index,
path: "/",
pipe_through: [:browser],
plug: MyApp.PageController,
private: %{},
verb: :get
}
iex(2)> for route <- MyApp.Router.__routes__,
...(2)> route.plug == MyApp.PostController,
...(2)> do: route.helper
["post", "post", "post", "post", "post", "post", nil, "post"]