首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >块的唯一性和url

块的唯一性和url
EN

Stack Overflow用户
提问于 2020-05-11 19:49:57
回答 1查看 34关注 0票数 0

我正在编辑一个网站(不是我做的),我不明白一件事。

简介当用户创建新产品页面时,在product.rb中有两个validates

代码语言:javascript
复制
validates :title, presence: true
validates :slug, presence: true, uniqueness: true

用户只能设置产品的title,并且自动生成复制标题的slug (= url)。例如,如果我设置title:"Red",则页面的url将为mysite.com/products/red

现在的问题/问题

如果我创建一个与另一个页面具有相同标题的页面,标题将始终是"Red“(显然,因为没有唯一性),但slug (自动生成)将类似于:

mysite.com/products/red-af503270-0ffd-4654-b4e9-a210e6a6500e

非常长的url。

为什么?我找不到制作它的脚本。因为我想对它进行编辑,使标题渐进式。例如mysite.com/products//red-2

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-11 20:03:17

这是因为网页的创建者使用了friendly_id Gem,而且很长的网址是为了确保唯一性

当您尝试插入一个会生成重复友好id的记录时,FriendlyId会将一个UUID附加到生成的slug中,以确保唯一性:

代码语言:javascript
复制
car = Car.create :title => "Peugeot 206"
car2 = Car.create :title => "Peugeot 206"

car.friendly_id #=> "peugeot-206"
car2.friendly_id #=> "peugeot-206-f9f3789a-daec-4156-af1d-fab81aa16ee5"

您可以了解更多信息以自定义它from this link

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61729034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档