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)
所有url/path助手都被编译为模块中的函数YourApp.Router.Helpers.您可以导入它并使用与模板中相同的参数进行调用(您可能会将其conn作为第一个参数传递,但由于我们conn在iex会话中没有,因此您可以传递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在这个项目中有一个.)
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)