Rails 如何获取我们忽略deleted_at 属性以及其他属性的条目

Sut*_*ala 2 activerecord ruby-on-rails rails-activerecord

我有模型Store。我想通过 来检查数据库中是否存在条目Store.where(:google_place_id => 'XXXX')。我只想检查它是否存在于数据库中,无论它是否被(软)删除。

当我尝试这样做时,rails 运行以下 SQL: SELECT "stores".* FROM "stores" WHERE "stores"."deleted_at" IS NULL AND "stores"."google_place_id" = $1 LIMIT $2 [["google_place_id", "XXX"], ["LIMIT", 1]]

经过一些研究后,我偶然发现了这个unscoped属性,它会删除这个deleted_at子句,但同时也会删除整个 WHERE 子句。例如,如果我尝试这样做,Store.where(:google_place_id => 'XXXX').unscoped它会运行这个 SQLSELECT "stores".* FROM "stores" WHERE "stores"."deleted_at" IS NULL AND "stores"."google_place_id" = $1 LIMIT $2 [["google_place_id", "XXX"], ["LIMIT", 1]]

有人可以澄清我做错了什么吗?

mb2*_*b21 7

来自paranoia宝石自述文件:

Store.with_deleted.where(google_place_id: 'xxx')
Run Code Online (Sandbox Code Playgroud)