如果永久链接已经被占用,则向永久链接追加编号



我想给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类方法,将这种数字添加到self。永久链接然后正常保存用户?

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

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

这是一种非常健壮的方法,您甚至可以将段鼻涕虫直接传递给find方法,这意味着您根本不需要保存段鼻涕虫。

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

相关内容

  • 没有找到相关文章

最新更新