【问题标题】:Advanced Rails Routing of short URLs and usernames off of root url来自根 url 的短 URL 和用户名的高级 Rails 路由
【发布时间】:2011-02-24 23:27:27
【问题描述】:

我希望用户名 URL 和 Base 58 短 URL 都来自根 URL,如下所示:

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

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

我知道用户名与短 url 冲突的可能性,我有一个解决方法,但我想不出在 rails 中设置它的最佳方法。

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

请告诉我执行此操作的最佳方法。非常感谢!

【问题讨论】:

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


    【解决方案1】:

    在不知道您的解决方法的情况下,很难确定,但为了简单起见,如果可能的话,我更喜欢路由器。只有当我需要真正处理请求本身时,我才使用 Rack 中间件。这可能会使您的事情变得过于复杂。如果路由器无法做到这一点,处理它的控制器也应该可以正常工作。 Rails 3 有一个强大的路由器,但 2 没有那么多。您可能还想考虑设置一个Rails Metal 端点来处理这个问题。

    【讨论】:

      【解决方案2】:

      你可以这样做吗?

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-15
        • 2014-12-01
        • 2012-06-18
        • 1970-01-01
        • 2012-09-13
        • 2014-04-23
        • 1970-01-01
        • 2014-06-10
        相关资源
        最近更新 更多