加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 更改friendly-id的唯一生成标题名称

发布时间:2020-12-17 03:41:26 所属栏目:百科 来源:网络整理
导读:我正在使用friendly_id gem.在portfolio.rb中我放了这两行: extend FriendlyId friendly_id :title,use: :slugged 如你所见,我也在使用slug选项.当我创建一个标题为“example”的项目时,它可以找到,我可以在mysite.com/projects/example下找到该项目.现在,
我正在使用friendly_id gem.在portfolio.rb中我放了这两行:

extend FriendlyId
  friendly_id :title,use: :slugged

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

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

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

解决方法

检查 documentation以获取最新版本的friendly_id:

A new “candidates” functionality which makes it easy to set up a list of alternate slugs that can be used to uniquely distinguish records,rather than appending a sequence.

直接来自文档的示例:

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],:street,:street_number,:city]
    ]
  end
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读