【发布时间】:2014-03-12 19:27:44
【问题描述】:
我目前在模型上使用acts_as_paranoid 和friendly_id (5.0.1),当我销毁模型并尝试创建一个新模型时,它会生成与我得到的相同的slug:
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]]
所以,我只需要弄清楚如何防止这种情况发生,我应该没问题,因为在尝试查找有效 slug 时,friendly_id 代码本身似乎已经在使用unscoped。
【问题讨论】:
标签: ruby-on-rails friendly-id acts-as-paranoid