slug 的唯一性和 url
slug uniqueness and url
我正在编辑一个网站(不是我做的)而且我不明白一件事。
简短介绍
当用户创建一个新的产品页面时,在 product.rb
中有两个 validates
validates :title, presence: true
validates :slug, presence: true, uniqueness: true
用户可以只设置商品的title
和slug
(=url)复制标题自动生成。
例如,如果我设置标题:"Red",页面的url将是mysite.com/products/red
现在 question/problem
如果我创建一个与另一个页面具有相同标题的页面,标题将始终是 "Red"(因为显然没有唯一性)但是 slug(自动生成)将类似于:
mysite.com/products/red-af503270-0ffd-4654-b4e9-a210e6a6500e
很长url.
为什么?我找不到制作它的脚本。
因为我想编辑它使标题渐进。例如mysite.com/products//red-2
这是因为网络的创建者使用friendly_id Gem,而且很长url是为了确保唯一性
当您尝试插入会生成重复友好 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
我正在编辑一个网站(不是我做的)而且我不明白一件事。
简短介绍
当用户创建一个新的产品页面时,在 product.rb
中有两个 validates
validates :title, presence: true
validates :slug, presence: true, uniqueness: true
用户可以只设置商品的title
和slug
(=url)复制标题自动生成。
例如,如果我设置标题:"Red",页面的url将是mysite.com/products/red
现在 question/problem
如果我创建一个与另一个页面具有相同标题的页面,标题将始终是 "Red"(因为显然没有唯一性)但是 slug(自动生成)将类似于:
mysite.com/products/red-af503270-0ffd-4654-b4e9-a210e6a6500e
很长url.
为什么?我找不到制作它的脚本。
因为我想编辑它使标题渐进。例如mysite.com/products//red-2
这是因为网络的创建者使用friendly_id Gem,而且很长url是为了确保唯一性
当您尝试插入会生成重复友好 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