ActiveRecord :: Relation - 查询执行了吗?

时间:2013-02-22 18:52:25

标签: ruby-on-rails-3 activerecord

假设我有以下型号:

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

0 个答案:

没有答案