1. 破壊的条件適用 — where!
メソッド
where!
メソッドは where
メソッドに似ています
- 既存の条件を上書きする「破壊的」な方式で動作します
- つまり、
where!
メソッドを使用すると、以前に適用されたすべての条件を削除し、新しい条件を適用します
例
User.where!(admin: true)
- このコードは
User
モデルで管理者のみを検索するクエリを生成します
- 以前に別の
where
条件が適用されていた場合、where!
メソッドを使用すると、それらの条件は無視され、新しい条件のみが適用されます
2. クエリメソッドで作成された条件の削除 — unscope
メソッド
unscope
メソッドはクエリから特定の部分を削除するために使用されます
where
、select
、order
など、既に適用されたスコープやクエリメソッドを「キャンセル」することができます
例
User.where(admin: true).unscope(:where)
User
モデルで where(admin: true)
条件を適用した後、unscope(:where)
を使用して where
条件を削除します
- 結果として、すべてのユーザーを返すクエリになります
3. 空の結果の抽出 — none
メソッド
none
メソッドは何もデータを返さないクエリを生成します
- このメソッドは主に、条件によってクエリを返すか返さないかを選ぶ時に便利に使用されます
none
メソッドで生成されたクエリはチェーンを続けることができ、最終的には空のコレクションを返します
例
User.none
- このコードは
User
モデルに対してデータを一切返さないクエリを生成します