我目前在模型上使用acts_as_paranoid 和friendly_id (5.0.1),当我销毁模型并尝试创建一个新模型时,它会生成与我得到的相同的蛞蝓:
ERROR: duplicate key value violates unique constraint "index_papers_on_slug"
我需要以某种方式获取检查 slug 是否已经存在的代码,检查所有对象的范围,而不仅仅是未删除的对象。
with_deleted
在检查 slug 是否已经存在时,我如何才能使用友好ID。我应该注意,我也在使用 slug 历史,这可能会使事情进一步复杂化。
深入挖掘后,我意识到由于我使用的是历史记录,所以当对象只是被软删除时,slug 被完全删除:
DELETE FROM "friendly_id_slugs" WHERE "friendly_id_slugs"."id" = $1 [["id", 9423]]
所以,我只需要弄清楚如何防止这种情况发生,我应该没问题,因为unscoped
在尝试查找有效 slug 时,它看起来像friendly_id 代码本身已经在使用。