如何检查凤凰路由器中是否存在路由路径

时间:2017-05-14 21:16:18

标签: elixir phoenix-framework

Phoenix会自动生成帮助程序,以生成与路由器路由关联的URL。

示例:

scope "/", Zombie.App, as: :app do
  pipe_through :browser

  get "/", PageController, :home # app_page_path()
  get "/about", ZombieController, :about # app_zombie_path()
end

如何知道我的应用程序中是否存在特定的路径助手?

2 个答案:

答案 0 :(得分:1)

我会使用Kernel.function_exported?

iex(3)> if function_exported?(NewAdmin.Router.Helpers, :group_path, 2), do: "yes", else: "no"
"yes"
iex(4)>

答案 1 :(得分:0)

这很简单,让我们说你想知道路径助手 app_zombie_path()是否存在,你可以这样做:

path = :app_zombie_path
router_paths = Zombie.Router.Helpers.__info__(:functions)

if Keyword.has_key?(router_paths, path) do
  # The path exists
end