我希望将用户名网址和Base 58短网址放到根网址的资源上,如下所示:
http://mydomain.com/username #=> goes to given user
http://mydomain.com/a3x9 #=> goes to given story
我知道用户名与短网址冲突的可能性,我有一个解决方法,但我无法弄清楚是在rails中设置它的最佳方法。
我可以在铁路线路上进行吗? 我应该用一块Rack中间件做些什么吗? 我应该设置路由控制器吗?
请告诉我这样做的最佳方法。非常感谢!
答案 0 :(得分:1)
在不知道你的解决方法的情况下,很难肯定地说,但如果可能的话,为了简单起见,我更喜欢路由器。我只在需要实际处理请求本身时才使用Rack中间件。这可能会让您感到过于复杂。如果路由器不能这样做,处理它的控制器应该也能正常工作。 Rails 3有一个强大的路由器,但2并不是那么多。您可能还想查看设置Rails Metal端点来处理此问题。
答案 1 :(得分:1)
你能做这样的事吗?
match "/s/:short" => redirect {|params| "/stories/#{Base58.decode params[:short]}"}