Elixir 从控制器名称获取路径帮助程序
在Routes文档中。我读到我们可以得到这样的路径:Elixir 从控制器名称获取路径帮助程序,elixir,phoenix-framework,Elixir,Phoenix Framework,在Routes文档中。我读到我们可以得到这样的路径: iex> import HelloWeb.Router.Helpers iex> alias HelloWeb.Endpoint iex> user_path(Endpoint, :index) "/users" 我们有没有办法像这样从控制器user获取canuser\u路径 user_path 谢谢这不是公共API,将来可能会更改,但是MyApp.Router.\uu路由\uu\u0可用
iex> import HelloWeb.Router.Helpers
iex> alias HelloWeb.Endpoint
iex> user_path(Endpoint, :index)
"/users"
我们有没有办法像这样从控制器user
获取canuser\u路径
user_path
谢谢这不是公共API,将来可能会更改,但是
MyApp.Router.\uu路由\uu\u0
可用于获取所有路由。从中,您可以按控制器进行筛选,并获取指向该控制器的所有路由
我的应用程序中有一个标准的resources”/posts“,PostController
。下面是该应用程序的一些iex-s混合输出:
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"]
iex(1)>MyApp.Router.\uuuuuuuuuuuuu124;>hd
%凤凰路线{
分配:%{},
助手:“页面”,
主持人:无,,
种类:匹配,
选项::索引,
路径:“/”,
管道通过:[:浏览器],
插件:MyApp.PageController,
私有:%{},
动词::get
}
iex(2)>对于route.plug==MyApp.PostController,
…(2)>do:route.helper
[“post”、“post”、“post”、“post”、“post”、“post”、“nil”、“post”]
谢谢您的帮助。