【问题标题】:Rails generate short routeRails 生成短路径
【发布时间】:2016-12-21 03:37:51
【问题描述】:

嗨 :) 我有一个问题,我不确定如何修复或解决具体问题。

我正在使用 MongoDB。

我想让我的路线变小,以便与公众分享。

例如

https://example.com/api/v1/users/:user_id/pictures/:picture_id

https://example.com/aghu234

因为我不希望其他用户看到路径。我希望你们能帮助我:)

【问题讨论】:

  • 我们称之为使用“slug”...这可能会帮助您搜索其他人的示例...例如:stackoverflow.com/questions/31059992/…
  • 祝你好运!如果您在任何特定实施上遇到困难,请回来,我们会为您提供帮助:)
  • 你知道如何开始吗?我对后端开发真的很陌生:/这就是我的路线看起来example.com/api/v1/users/:user_id/pictures/:picture_id。我只想使用友好的 id 访问对象图片。喜欢example.com/agdh675。如果你能帮我做一个小介绍,我会很高兴我也在使用 mongoid
  • 另一个堆栈溢出问题的链接包含您将在其答案中开始使用的代码示例:)

标签: ruby-on-rails api paperclip slug friendly-id


【解决方案1】:

您可以使用shortener gem,但使用 3rd 方 gem 没有乐趣。因此,如果您想要内部版本,则可以使用以下示例代码。

ALLOWED_CHARACTER_SPACE = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".split(//)
def convert_uid_to_short(uid)
        surl = ''
        base = ALLOWED_CHARACTER_SPACE.length
        while uid > 0
            surl << ALLOWED_CHARACTER_SPACE[uid.modulo(base)]
            uid /= base
        end
        surl.reverse
    end

在上述方法中,您传递了uid,这是您的 url/api 的整数格式的唯一标识符。它将返回唯一标识符的短 url。然后,您可以在代码中适当地使用短版本。

示例:

convert_uid_to_short(10)
output: k

convert_uid_to_short(1043234)
output: exyw

【讨论】:

  • 感谢您的帮助。:) 多么棒的社区 :)
【解决方案2】:

您可以使用shortener gem,它完全符合您的要求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    相关资源
    最近更新 更多