【问题标题】:Phoenix: Custom URL structure when using resource?Phoenix:使用资源时的自定义 URL 结构?
【发布时间】:2016-05-04 07:43:16
【问题描述】:

使用mix phoenix.gen.html,我创建了一个新的Ecto 模型和相关路由,并将resources "/users", UserController 添加到我的router.ex。正如预期的那样,这个自动生成的 URL 像 /users/:id/users/:id/edit 等。

我想将 URL 结构更改为 /users/:slug/:id/,其中 slug 是 User 模型上的一个字段。有没有办法在仍然使用 Phoenix 资源路由的同时指定这个新的 URL 结构?

如果它使事情变得更容易:我并不特别关心验证:slug,或者如果客户打错了确保它是正确的。我只希望 Phoenix 接受/生成具有该结构的 URL。

【问题讨论】:

    标签: elixir phoenix-framework


    【解决方案1】:

    假设我有几个用户分组到团队中。我想访问团队中的特定用户。

    我可以将它添加到 router.ex

        get "/:team_name/:user_name", ProfileController, :show_in_team
    

    在 profile_controller.ex 中,我添加

        def show_in_team(conn, %{"team_name" => team_name, "user_name" => user_name}) do
            render conn, "show.html", user_name: user_name, team_name: team_name
        end
    

    现在我可以使用 localhost:4000/team1/user1 访问该特定用户

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-22
      • 2016-08-13
      • 1970-01-01
      • 1970-01-01
      • 2023-02-03
      • 1970-01-01
      相关资源
      最近更新 更多