我在一個模型中使用acts_as_paranoid和friendly_id(5.0.1),當我摧毀的模型,並嘗試建立一個新的,將產生同樣的蛞蝓我得到電流:friendly_id和acts_as_paranoid創建重複蛞蝓
ERROR: duplicate key value violates unique constraint "index_papers_on_slug"
我需要以某種方式得到檢查一個slug是否已經存在的代碼檢查所有對象的範圍內,而不僅僅是未刪除的對象。
如何在檢查slug是否已存在時如何獲得friendly_id以使用with_deleted
。我應該注意到,我也在使用slu history歷史,這可能會使事情進一步複雜化。
在更深的挖掘,我意識到,因爲我是用歷史上塞被完全刪除,而對象就是被軟刪除:
DELETE FROM "friendly_id_slugs" WHERE "friendly_id_slugs"."id" = $1 [["id", 9423]]
所以,我只需要弄清楚如何防止這一點,我應該沒問題,因爲它看起來像friendly_id代碼本身已經使用unscoped
當試圖找到一個有效的slu。。
這會導致以下錯誤:'undefined method unspecd for Paper' –
嗯,你可以嘗試創建一個調用'unscoped'的包裝範圍嗎? – bredikhin
問題似乎是friendly_id作用域期望在對象的其他屬性上作用域而不一定設置搜索的範圍,所以當我創建一個新方法時,它會抱怨這個unscoped列不存在。 –