我正在编辑一个网站(不是我做的),我不明白一件事。
简介当用户创建新产品页面时,在product.rb中有两个validates
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
发布于 2020-05-11 20:03:17
这是因为网页的创建者使用了friendly_id Gem,而且很长的网址是为了确保唯一性
当您尝试插入一个会生成重复友好id的记录时,FriendlyId会将一个UUID附加到生成的slug中,以确保唯一性:
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
https://stackoverflow.com/questions/61729034
复制相似问题