2016-02-28 78 views
0

使用mix phoenix.gen.html,我創建了一個新的外生模型和相關的路由,並添加了resources "/users", UserController我router.ex。正如預期的那樣,這個自動生成的網址如/users/:id,/users/:id/edit鳳凰:使用資源時,自定義URL結構呢?

我想將網址結構更改爲/users/:slug/:id/,其中slug是用戶模型中的字段。有沒有辦法指定這個新的URL結構,同時仍然使用Phoenix資源路由?

如果它使事情變得更加容易:我並不特別在意驗證:slug,或確保它是正確的,如果客戶端發出一個錯字。我只是希望鳳凰城接受/生成具有該結構的網址。

回答

-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

特定用戶