假设我有以下型号:
class Foo < ActiveRecord::Base
has_many :bars
end
class Bar < ActiveRecord::Base
belongs_to :foo
scope :blue, where(color: 'blue')
end
如果我有一个Foo
的实例,有几种方法可以检索与之关联的所有蓝色Bar
模型。我的问题涉及确定是否已加载给定bars
的{{1}}关系。
无论是否已将完整的条形集合加载到内存中,这都将执行数据库查询:
foo
如果加载foo.bars.blue.all
的查询包含bars
,则不会执行查询。如果未加载它们将加载所有foo
然后枚举。
bars
如何在不导致执行查询的情况下确定是否已加载关系?
foo.bars.select { |b| b.color == 'blue' }
有什么想法吗?
编辑:
只是为了澄清,这是我希望实现的结果:
foo.bars.some_method_to_determine_whether_or_not_they_are_in_memory_thanks