2009-09-25 44 views

回答

3

可能最簡單的方法是在路由表底部有一個全通路由。喜歡的東西:

map.connect '/:slug', :controller => 'users', :action => 'show' 

然後在用戶控制器....

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

我還建議捉ActiveRecord::RecordNotFound顯示404頁。你可以把這樣的事情在ApplicationController

rescue_from ActiveRecord::RecordNotFound, :with => :not_found 

然後定義一個方法not_found呈現一個錯誤頁面或東西。

0

您可以使用friendly_id寶石。

+0

它很酷。不過,我正在尋找一些不會暴露控制器的東西。就像在問題描述中給出的例子一樣。 – Chirantan 2009-09-25 12:48:29