2014-09-30 77 views
0

我打開了一些客戶檔案,我希望他們的檔案頁面URL是他們的名字。創建動態網址和路線

例如,有人叫李四,將有一個輪廓:

mydomain.com/profiles/johndoe 

如果有更多的一個李四,所以我想我們:

mydomain.com/profiles/johndoe1 

mydomain.com/profiles/johndoe2 

我讀過關於這裏的動態路由

Rails Routing from the Outside In

但我無法弄清楚如何 去做吧。

謝謝。

回答

3

使用通配符可以完成您的任務。在config/routes.rb地說:

get '/profiles/:username', to: 'controller_name#action_name' 

現在params[:username]等於在你的第一個例子「johndoe1」和「johndoe2」你的第二個網址的例子。所以你可以在你的控制器中,把

def show 
    @user = User.find_by_username(params[:username]) 
end 

它會根據用戶名填充數據庫記錄@user。

注意:很明顯,我對你的設置做出了一些非常大的假設,所以你將不得不爲你自己的個人情況在這裏和那裏討論一些事情,但是這應該給你一個大概的想法。

+0

謝謝。有效! 其實,我沒有這個字段的用戶名,只有first_name和last_name,但我創建了一個新的字段用戶名,就像你建議的那樣。 – 2014-09-30 22:36:20