私は現在、モデルでacts_as_paranoidとfriendly_id(5.0.1)を使用しています。モデルを破棄して、同じスラッグを生成する新しいモデルを作成しようとすると、次のようになります。
ERROR: duplicate key value violates unique constraint "index_papers_on_slug"
削除されていないオブジェクトだけでなく、すべてのオブジェクトのスコープ内でスラッグが既に存在するかどうかをチェックするコードを何らかの方法で取得する必要があります。
with_deleted
スラッグが既に存在するかどうかを確認するときに使用する Friendly_id を取得するにはどうすればよいですか。スラッグ履歴も使用しているため、さらに複雑になる可能性があることに注意してください。
深く掘り下げると、履歴を使用しているため、オブジェクトがソフト削除されている間にスラッグが完全に削除されていることに気付きました。
DELETE FROM "friendly_id_slugs" WHERE "friendly_id_slugs"."id" = $1 [["id", 9423]]
したがって、これを防ぐ方法を理解する必要があるだけunscoped
です。有効なスラッグを見つけようとするときに、 Friendly_id コード自体が既に使用されているように見えるので、大丈夫です。