Rails生成短路线

时间:2016-08-14 20:49:19

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

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

我正在使用MongoDB。

我想让我的路线很小,以便向公众分享。

例如

  

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

  

https://example.com/aghu234

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

你可以使用shortener 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