Rails 4 中友好 id gem 的随机 slug url

Stu*_*ins 0 ruby-on-rails friendly-id ruby-on-rails-4

有没有人用过 random_slug ( https://github.com/josei/random_slug ) 作为friendly_id?它上次更新是在 5 年前,所以我不确定尝试它是否浪费时间,或者即使有更好的解决方案?

基本上,我使用friendly_id 来获取我帖子的标题,并且我有一个范围,因此这些帖子对用户来说是唯一的,但我非常希望这些帖子是随机生成的 URL,类似于 YouTube URL 的 I假设 - 这是否可以通过友好的 ID 进行,或者我是否以错误的方式处理这个问题,还有其他什么可以让我的生活更轻松 100 倍吗?

trh*_*trh 5

该插件不起作用,至少它本身不起作用。它被设计为与今天的 gems 不兼容的 rails 2 插件 - 但如果你看看它的 lib,它所做的一切就是生成一个随机字符串,正如评论中指出的那样,你可以使用 SHA1 摘要。我喜欢安全随机。(同样的概念)

你的模型看起来像这样

class Post < ActiveRecord::Base
  extend FriendlyId
  friendly_id :generated_slug, use: :slugged
  def generated_slug
    require 'securerandom' 
    @random_slug ||= persisted? ? friendly_id : SecureRandom.hex(15) 
  end
end
Run Code Online (Sandbox Code Playgroud)