gpt4 book ai didi

ruby-on-rails - friendly_id 和acts_as_paranoid 创建重复的蛞蝓

转载 作者:行者123 更新时间:2023-12-02 00:00:19 24 4
gpt4 key购买 nike

我目前在模型上使用acts_as_paranoid 和friendly_id (5.0.1),当我销毁模型并尝试创建一个新模型时,它会生成与我得到的相同的蛞蝓:

ERROR:  duplicate key value violates unique constraint "index_papers_on_slug"

我需要以某种方式获取检查是否已存在 slug 检查所有对象范围内的代码,而不仅仅是未删除的对象。

我怎样才能让friendly_id 使用 with_deleted当检查是否已经存在蛞蝓时。我应该注意,我也在使用 slug 历史,这可能会使事情进一步复杂化。

深入挖掘后,我意识到由于我使用的是历史记录,所以当对象只是被软删除时,slug 被完全删除:
DELETE FROM "friendly_id_slugs" WHERE "friendly_id_slugs"."id" = $1  [["id", 9423]]

所以,我只需要弄清楚如何防止这种情况,我应该没问题,因为它看起来友好 ID 代码本身已经在使用 unscoped当试图找到一个有效的蛞蝓。

最佳答案

Friendly_id 有一个名为 scoped 的模块它允许您在范围内生成独特的 slug。所以,大概

class Paper < ActiveRecord::Base
extend FriendlyId
friendly_id :title, :use => :scoped, :scope => :unscoped
end

将解决问题。

关于ruby-on-rails - friendly_id 和acts_as_paranoid 创建重复的蛞蝓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21762364/

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