如何在iex中查看凤凰路线?

Dou*_*oug 10 elixir phoenix-framework

如何查看路径的输出iex

我知道我可以做到这一点,mix Phoenix.routes但我想以交互方式做到这一点.

这是我想做的一个例子:

iex -S Phoenix.server

mymodel_path
Run Code Online (Sandbox Code Playgroud)

这给了我这个错误:

** (CompileError) iex:2: undefined function mymodel_path/0
Run Code Online (Sandbox Code Playgroud)

Dog*_*ert 9

所有url/path助手都被编译为模块中的函数YourApp.Router.Helpers.您可以导入它并使用与模板中相同的参数进行调用(您可能会将其conn作为第一个参数传递,但由于我们conniex会话中没有,因此您可以传递YourApp.Endpoint):

iex(1)> import YourApp.Router.Helpers
nil
iex(2)> page_path(YourApp.Endpoint, :index)
"/"
iex(3)> task_path(YourApp.Endpoint, :show, 1)
"/tasks/1"
Run Code Online (Sandbox Code Playgroud)

(我resources "/tasks", TaskController在这个项目中有一个.)


tor*_*tte 8

iex> Mix.Tasks.Phoenix.Routes.run ''                                              
page_path  GET   /           YourApp.PageController :index                                
user_path  GET   /users      YourApp.UserController :index                               
user_path  GET   /users/new  YourApp.UserController :new                                  
user_path  GET   /users/:id  YourApp.UserController :show                               
user_path  POST  /users      YourApp.UserController :create
Run Code Online (Sandbox Code Playgroud)

Phoenix 1.3更新:mix phoenix.routes is deprecated. Use phx.routes instead.那是:

iex(7)> Mix.Tasks.Phx.Routes.run ''
 page_path  GET  /       HelloWeb.PageController :index
hello_path  GET  /hello  HelloWeb.HelloController :index
Run Code Online (Sandbox Code Playgroud)