【发布时间】:2012-11-11 21:38:55
【问题描述】:
我正在使用 paranoia gem 来“软删除”记录。现在我需要为关联模型急切加载这些记录,其中一些可能已被删除。 Paranoia 将此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)
这(来自How to use unscoped on associated relations in Rails3?)在这里不起作用:
Product.unscoped { Order.includes(:product) }
我知道我可以创建自定义belongs_to 关系到添加 条件(如Eager loading nested association and scope),但我找不到删除 现有的方法那些,如果可能的话。
问题:如何防止将默认范围应用于预加载查询?
【问题讨论】:
-
刚刚找到这个相关的问题,仍然没有答案:stackoverflow.com/questions/3963124/…
标签: ruby-on-rails ruby-on-rails-3 eager-loading default-scope