2012-11-05 15 views
0

我使用這個to_param軌路由 - 不會404錯誤的地址

def to_param 
    [id, [first_name.parameterize,last_name.parameterize].join("_")].join("-") 
end 

產生看起來像

http://www.example.com/users/34-joe_smith 

但地址,如果我的地址更改爲

http://www.example.com/users/34-joe_notsmith 

它仍將我引導至ID爲34的用戶。

如何執行它以轉到404頁面或root_path?

回答

0

由於您的搜索正在對id執行,而不是用戶的名稱,它並不會真正關心url中的id是否成功。您可以擴展您的演出活動,根據ID,名字和姓氏找到用戶,但我認爲這不會是一個非常乾淨的解決方案。

相反,我強烈建議你看一看的Friendly_ID寶石,將讓你用很少的配置很容易產生非PK場漂亮的網址,如用戶的姓名。關於這個問題有一個很好的電視廣播:pretty urls with friendlyid