将路由器操作委派给其他应用程序中的控制器

时间:2018-01-23 16:11:44

标签: routing elixir phoenix-framework

我有一个凤凰伞项目,其中包含许多与我的main应用相关的路线,然后是与我的child应用相关的多条路线。

目前我绑定到两个端口(main_webchild_web已配置的端口)然后我链接到我的child应用程序中的路由引用我的子端口所在的URL与。相关联。

我可以改为仅绑定到一个端口,并且包含以下router.ex个文件的内容:

main_web / router.ex

scope "/" do
  pipe_through :browser

  get "/", MainWeb.PageController, :index
  resources "/user", MainWeb.UserController

  # Somehow delegating this to the ChildWeb app would be better
  scope "/child", ChildWeb do

    get "/", Page.Controller, :index
    resources "/other", OtherController
  end
end

child_web / router.ex

# if this is configured it would be everything after the /child url
scope "/", ChildWeb do
  get "/page1", Page1Controller, :index
end

我不完全确定如何写这个,但我觉得这个实现可能存在于某个地方,如果有人可以参考我上面的例子或凤凰文档,我将不胜感激。

1 个答案:

答案 0 :(得分:2)

您可能想要使用forward/4

forward "/child", ChildWeb.Router