使用mix phoenix.gen.html
,我创建了一个新的Ecto模型和相关路由,并将resources "/users", UserController
添加到我的router.ex中。正如预期的那样,这个自动生成的网址包括/users/:id
,/users/:id/edit
等
我想将网址结构更改为/users/:slug/:id/
,其中slug是User模型上的字段。有没有办法在仍然使用Phoenix资源路由时指定这个新的URL结构?
如果它让事情变得更容易:我并不特别关心验证:slug
,或者如果客户输入错误则确保它是正确的。我只是希望Phoenix接受/生成具有该结构的URL。
答案 0 :(得分:-2)
假设我有几个用户分组。我想从团队中访问特定用户。
我可以将它添加到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