パラノイアの宝石を使用して、レコードを「ソフト削除」しています。ここで、関連付けられたモデルに対して、これらのレコード (一部は削除されている可能性があります) を熱心にロードする必要があります。default_scope
パラノイアは、これを「パラノイド」モデルに追加します。
default_scope :conditions => { :deleted_at => nil }
したがって、実際には、これらの(単純化された)モデルがあります。
class Product
has_many :orders
default_scope :conditions => { :deleted_at => nil }
end
class Order
belongs_to :product
end
私が達成しようとしているのは、注文にアクセスするときに製品を熱心にロードすることです:
Order.includes(:product)
これ ( Rails3 で関連付けられたリレーションでスコープ外を使用する方法から) は、ここでは機能しません。
Product.unscoped { Order.includes(:product) }
条件を追加belongs_to
するためのカスタム関係を作成できることはわかっていますが(入れ子になった関連付けとスコープを Eager でロードする場合のように)、既存の関係を削除する方法を見つけることができません。
質問:既定のスコープが熱心な読み込みクエリに適用されないようにするにはどうすればよいですか?