2017-05-14 20 views
0

Phoenix generiert automatisch die Helfer, um die URLs zu generieren, die den Routen des Routers zugeordnet sind.Wie überprüft man, ob ein Routenpfad in Phoenix Router existiert

Beispiel:

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

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

Wie ist es möglich, zu wissen, ob ein bestimmter Weg Helfer in meiner Anwendung existiert?

Antwort

0

Es ist einfach, sagen wir, Sie, wenn der Pfad Helfer app_zombie_path() existiert wissen wollen, was Sie tun können:

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

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

ich Kernel.function_exported? verwenden würde.

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

Klingt eine andere großartige Lösung, aber sieht so aus, als müssten Sie die Arity angeben. –

Verwandte Themen