假设您有两个模型:
class Walrus < ActiveRecord::Base
default_scope { where("destroyed_at IS NULL") }
has_many :bubbles, dependent: :destroy
end
class Bubble < ActiveRecord::Base
default_scope { where("destroyed_at IS NULL") }
belongs_to :walrus
end
现在如果我摧毁海象,它也会破坏它们的气泡(即设置destroyed_at
和Walrus
模型的Bubble
。如果我想找到被毁的{{} 1}}记录,我可以这样做:
Walrus
我需要的是一种解除关联的方法。
真实世界的应用程序是一个具有大量关联的模型,通过API返回,因此我无法手动浏览每个关联并取消关联。
答案 0 :(得分:0)
您应该可以使用嵌套unscoped
块:
Walrus.unscoped do
Bubble.unscoped do
frank = Walrus.first
frank.bubbles.to_a
end
end
注意,在Rails 4.2控制台中测试时,我不得不将.to_a
添加到关联中,否则unscoped
将不会应用它(这可能与打印结果有关) - 关系对象 - 在rails控制台中。)