更改friendly-id的唯一生成标题名称

Ste*_*nou 5 ruby-on-rails friendly-id

我正在使用friendly_id gem.在portfolio.rb中我放了这两行:

  extend FriendlyId
  friendly_id :title, use: :slugged
Run Code Online (Sandbox Code Playgroud)

如你所见,我也在使用slug选项.当我创建一个标题为"example"的项目时,它可以找到并且我可以找到该项目mysite.com/projects/example.现在,如果我创建一个具有相同标题的第二个,我会像这样得到一个标题:mysite.com/projects/example-74b6c506-5c61-41a3-8b77-a261e3fab5d3.我真的不喜欢这个头衔.我希望有一个更友好的标题example-2.

在这个问题上,RSB(用户)告诉我它的friendly_id导致了这个问题.我想知道是否有办法创造一个更友好的.起初我想到"手动"检查是否存在相同的标题(在while循环中)并使用example-2或example-3或... example-N分配另一个标题.

但是我需要做那样的事情还是我错过了什么?有没有更简单的方法来做这样的事情?

Thi*_*ilo 6

查看文档以获取最新版本的friendly_id:

一种新的"候选"功能,可以轻松设置可用于唯一区分记录的备用段列表,而不是附加序列.

直接来自文档的示例:

class Restaurant < ActiveRecord::Base
  extend FriendlyId
  friendly_id :slug_candidates, use: :slugged

  # Try building a slug based on the following fields in
  # increasing order of specificity.
  def slug_candidates
    [
      :name,
      [:name, :city],
      [:name, :street, :city],
      [:name, :street_number, :street, :city]
    ]
  end
end
Run Code Online (Sandbox Code Playgroud)