RailsのActive Recordには、`scope`や`default_scope`という機能があり、SQLクエリの条件を指定してあらかじめ付けておくことが可能です。 `unscope`や`unscoped`は、これらのscope系で付けた条件を外すことが出来ます。 ただ、注意点として、**scope系以外で付けた条件も外してしまいます**。 以下に例を示します。 ```ruby irb(main):001:0> puts User.where(id: 1).all.to_sql SELECT "users".* FROM "users" WHERE "users"."id" = 1 => nil irb(main):002:0> puts User.where(id: 1).unscope(:where).all.to_sql SELECT "users".* FROM "users" => nil irb(main):003:0> puts User.where(id: 1).unscoped.all.to_sql SELECT "users".* FROM "users" => nil ``` `unscope`や`unscoped`が、直前の`where`句で指定した条件を外していることが確認できます。 ### 確認した環境 - Rails 7.0.4 ### 参考 - [Railsガイド:Active Record クエリインターフェイス:9 条件を上書きする](https://railsguides.jp/active_record_querying.html#%E6%9D%A1%E4%BB%B6%E3%82%92%E4%B8%8A%E6%9B%B8%E3%81%8D%E3%81%99%E3%82%8B)