2009-06-26 33 views
1

Morning Everyone!..Rails路由問題:直接在根目錄下映射S//固定鏈接?

一般路由Quesiton在這裏......我目前正在努力爲我的應用程序中的用戶實現類似於此的路由。

http://www.example.com/用戶名

這將映射到usersControllers#表演,因此我已經在我的路線文件以下。

map.connect '/:永久',:控制器=> 「用戶」,:動作=> 「秀」

然後我有表演動作來找到該用戶在參數中的永久鏈接。所以它的作品,但...

我遇到的問題是,所有其他UNDEFINED路線發送到userController#show。即404的&其他未命名的路由。所以我不認爲我會按照正確的慣例去做這件事。我的解決方案是在此之上添加其他命名路線,這可以解決問題,但對我來說似乎很脆弱。我在想這個錯嗎?

最好的解決方案是什麼?我要去挖掘谷歌的答案,但我只是想我會拋出討論。想法?

回答

1

你做得對。軌道路線從高優先級到低優先級。你的用戶顯示的行動應該在底部。只要確保永久鏈接不對應於用戶,就會生成正確的404。

+0

謝謝本,我很欣賞頭。我想我已經解決了這個問題。我將「永久鏈接」命名空間和我上面列出的所有其他現有網址定義爲更高優先級。現在測試它... – 2009-06-27 17:03:12

1

如果您的用戶名與您網站上的其他網址相同,該怎麼辦? 這似乎是一個等待發生的麻煩。

它只是改變http://www.example.com/user/username

您爲所有基於用戶名的網址「用戶」命名這種方式。

+0

Zepplock,是的,我正在考慮這一點。但我真的很喜歡直接在「根」名稱空間之後擁有自己的配置文件的url的外觀。我將構建驗證,以防止用戶創建與現有URLS匹配的名稱,甚至在其自己的名稱空間中進一步包含更多「靜態」URL。即www.example.com/pages/....。感謝您的提示,但! – 2009-06-27 17:02:28