如何在iex
?
我知道我可以使用mix Phoenix.routes
执行此操作,但希望以交互方式执行此操作。
以下是我想要做的一个例子:
iex -S Phoenix.server
mymodel_path
这给了我这个错误:
** (CompileError) iex:2: undefined function mymodel_path/0
答案 0 :(得分:9)
所有url / path助手都被编译到模块YourApp.Router.Helpers
中的函数中。您可以导入它并使用与模板中相同的参数进行调用(您可能会将conn
作为第一个参数传递,但因为我们在{{1}中没有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"
。)
答案 1 :(得分:8)
intList
Phoenix 1.3更新: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
即:
mix phoenix.routes is deprecated. Use phx.routes instead.
答案 2 :(得分:1)
您可以在此处的官方文档中找到适合您的相关文档 - http://www.phoenixframework.org/docs/routing#section-path-helpers
假设您的应用名称为HelloPhoenix
iex> import HelloPhoenix.Router.Helpers
iex> alias HelloPhoenix.Endpoint
iex> user_path(Endpoint, :index)
"/users"
iex> user_path(Endpoint, :show, 17)
"/users/17"
iex> user_path(Endpoint, :new)
"/users/new"
iex> user_path(Endpoint, :create)
"/users"
答案 3 :(得分:0)
对于伞形应用程序,您应该使用
Mix.Tasks.Phx.Routes.run([YourApp.Web.Router])
答案 4 :(得分:0)
YourApp.Web.Router.__routes__()
答案 5 :(得分:0)
假设:项目名称=芒果 我创建了一个注册控制器(:new,:create)和一个CategoryController(:show)
Model