【问题标题】:How can I create numbered (random) urls for my rails app?如何为我的 rails 应用程序创建编号(随机)的 url?
【发布时间】:2014-12-25 19:48:55
【问题描述】:

我希望我的网址是字符的随机组合(就像 YouTube 在视频网址末尾所做的那样)

有没有宝石可以做到这一点?我可以将我的 UUID 链接到每个帖子,以便创建随机的数字组合吗?

任何建议都将不胜感激 - 几天来一直在寻找某种解决方案(以这种速度,晚上)!

【问题讨论】:

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


    【解决方案1】:

    您可以根据需要使用 UUID。我使用 postgres 作为我的数据库,它现在有一个 UUID 数据类型,可以很容易地用作数据库表的主键。我还使用代码将 UUID “压缩”为 22 个字符(有关信息,请参阅 How can I shorten a UUID to a specific length?),然后将其用作 id。只需很少的代码即可完成此操作。

    如果您愿意,也可以使用 SecureRandom (http://ruby-doc.org/stdlib-2.1.2/libdoc/securerandom/rdoc/SecureRandom.html) 仅使用纯随机字符串,有多种方法。

    【讨论】:

    • 谢谢 - 因为这些帖子可能被用作用户参考我想创建一些短于 22 个字符的东西。使用随机字符串字符是不好的形式吗?它们可以映射到 UUID(用于内部引用目的)吗?它们对我的应用程序来说是唯一的吗?
    • 在这种情况下,您需要使用 SecureRandom(上面的链接)创建一个较短的字符串并将其单独存储在数据库中,检查唯一性并在发生冲突时生成另一个字符串。我有一些应用程序使用“before_create”或“before_validation”回调来创建标识符。对于这样的表,我留下了我的应用程序内部使用的标准数字 ID。您可以覆盖“to_param”以使其使用您的其他密钥作为 url。
    猜你喜欢
    • 2013-01-17
    • 2013-03-01
    • 2019-11-14
    • 1970-01-01
    • 1970-01-01
    • 2012-07-23
    • 1970-01-01
    • 2016-07-13
    • 2014-07-10
    相关资源
    最近更新 更多