gpt4 book ai didi

ruby-on-rails - 如何为数据库字段创建顺序唯一 ID

转载 作者:数据小太阳 更新时间:2023-10-29 07:24:26 28 4
gpt4 key购买 nike

我有一个带有唯一字段 url 的表 Slug。

如果我创建 @slug = Slug.url = "foo"

当我去保存时,如果“foo”的 Slug.url 已经存在,我想尝试“foo-1”的 Slug.url 如果它也存在,尝试“foo-2”foo- 3、foo-4等,直到发现一个值不存在,可以在数据库中创建。在我的 Rails 模型中执行此操作的正确方法是什么?

更新

我最新的代码是这样的:

  def set_url
self.url = self.title.parameterize
# Ensure the url is available
qUrl = self.url.split('-').shift
slugs = Slug.where("url like '#{qUrl}%'")
if slugs.exists?
c = slugs.count + 1
self.url = self.url + "-" + c.to_s
end
end

此代码的问题是 qUrl 会检测到误报,只要标题以“为什么”一词开头,就会发现 slug。有没有更可靠和优雅的方法?

最佳答案

我建议使用 friendly_id gem为了这。如果您查看 documentation in the slugged object ,您会看到它有一种机制,可以通过将 uuid 附加到 slug 名称来处理唯一性。

或者,有多个 other slug generating gems这可能更适合您的环境。

关于ruby-on-rails - 如何为数据库字段创建顺序唯一 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41478399/

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