2011-07-07 77 views

回答

2

這是我會怎麼做這個(可能不是最有效的,但將工作)

創建一個名爲URLRouter

在配置/ routes.rb中

match ':object' => 'URLRouter#show' 

這是一個虛擬控制器將調用URLRouter控制器中的SHOW操作,並將它們請求的東西放入params [:object]中。

在這種URLRouter控制器,將下面的代碼:

if User.find_by_username(params[:object]) 
    render "users/show/#{params[:object]}" 
end 

重複這個if語句爲每個不同的型號。第一個模型優先於第二個模型,優先於第三個模型等。

請注意,您需要確保您不能創建與用戶名具有相同值的標記,並且您可以創建一個與內部鏈接相同的用戶名,等等。否則,最終可能會出現無法訪問的頁面(bc URL可能會路由到不同於您預期的模型)。

另一個重要的注意事項是,如果你以這種方式修改你的路線,我會把這個匹配語句放在其餘的之後。

相關問題