2010-05-28 83 views
1

我想擁有用戶名的網址和底座58個的短網址資源都關閉了根URL這樣的路徑:高級Rails的短網址和關根URL的用戶名

http://mydomain.com/username #=> goes to given user 

http://mydomain.com/a3x9 #=> goes to given story 

我知道的可能性的用戶名與短url衝突,我有一個解決方法,但我不明白是在rails中設置它的最佳方法。

我可以在軌道路線中完成嗎? 我應該用一塊Rack中間件做些什麼? 我應該建立一個路由控制器嗎?

請讓我知道做到這一點的最佳方式。非常感謝!

回答

1

不知道你的解決方法,很難說肯定,但我更喜歡路由器,如果可能的話爲簡單起見。只有當我需要真正使用請求本身時才使用Rack中間件。這可能會讓你感到過度複雜。如果路由器不能這樣做,處理它的控制器也應該可以正常工作。 Rails 3有一個強大的路由器,但2不是很多。你可能也想看看設置一個Rails Metal端點來處理這個問題。

1

你能做這樣的事嗎?

match "/s/:short" => redirect {|params| "/stories/#{Base58.decode params[:short]}"}