gpt4 book ai didi

ruby-on-rails - Rails : Append number to permalink, 如果永久链接已经被采用

转载 作者:行者123 更新时间:2023-12-04 06:20:27 26 4
gpt4 key购买 nike

我想给 John Doe 永久链接 john-doe-2 , 如果已经有 john-doe-1 .
该数字应该是下一个要附加的空闲数字(“john-doe- n ”)

目前,我的永久链接以通常的方式生成:

before_validation :generate_slug  
private
def generate_slug
self.permalink = self.name.parameterize
end

如何实现 validates_uniqueness_of -like方法,将这种数字添加到self.permalink然后正常保存用户?

最佳答案

首先,问问自己:有没有更简单的方法来做到这一点?我相信有。如果您已经愿意为您的 slug 添加数字,那么总是添加一个数字怎么样,比如 ID?

before_validation :generate_slug

private
def generate_slug
self.permalink = "#{self.id}-#{self.name.parameterize}"
end

这是一种非常强大的方法,您甚至可以将 slug 直接传递给 find方法,这意味着您根本不需要保存 slug。

否则,您可以只检查姓名 + 号码是否已存在,并将 n 增加 1,然后重新检查,直到找到一个空闲号码。请注意,如果有很多同名记录,这可能需要一段时间。如果同时生成两个 slug,这种方式也受竞争条件的影响。

关于ruby-on-rails - Rails : Append number to permalink, 如果永久链接已经被采用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6642230/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com