高级Rails从根URL路由短URL和用户名

时间:2010-05-28 04:09:16

标签: ruby-on-rails ruby url routing url-routing

我希望将用户名网址和Base 58短网址放到根网址的资源上,如下所示:

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

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

我知道用户名与短网址冲突的可能性,我有一个解决方法,但我无法弄清楚是在rails中设置它的最佳方法。

我可以在铁路线路上进行吗? 我应该用一块Rack中间件做些什么吗? 我应该设置路由控制器吗?

请告诉我这样做的最佳方法。非常感谢!

2 个答案:

答案 0 :(得分:1)

在不知道你的解决方法的情况下,很难肯定地说,但如果可能的话,为了简单起见,我更喜欢路由器。我只在需要实际处理请求本身时才使用Rack中间件。这可能会让您感到过于复杂。如果路由器不能这样做,处理它的控制器应该也能正常工作。 Rails 3有一个强大的路由器,但2并不是那么多。您可能还想查看设置Rails Metal端点来处理此问题。

答案 1 :(得分:1)

你能做这样的事吗?

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