Я использую paranoia для записи "soft-delete". Теперь мне нужно загружать эти записи, некоторые из которых могли быть удалены, для связанной модели. Паранойя добавляет этот 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)
Это (из Как использовать unscoped для связанных отношений в Rails3?) здесь не работает:
Product.unscoped { Order.includes(:product) }
Я знаю, что могу создать настраиваемое отношение belongs_to
для добавления условий (как в Яркая загрузка вложенных связей и области), но я не могу найти способ для удаления существующих, если это возможно.
Вопрос: Как предотвратить использование области по умолчанию для запроса на загрузку?