Rails ActiveRecord - 从has_many使用'build'时急切加载(排序)

时间:2009-12-08 19:38:08

标签: ruby-on-rails activerecord eager-loading

我有一种情况,其中构建了子节点但未保存,然后在视图中使用对父节点的引用。这导致了大量使用rails记录缓存。我想让父母'急切地加载'未保存的儿童记录。

class Parent < ActiveRecord::Base
  has_many :children
  def make_children
    loop..
      children_array << children.build(...)
    end
  end
end

然后在视图中(注意'child'未保存到DB):

children_array.each do |child|
  # What's the best way to optimise this so it doesn't
  # keep selecting parent albeit from the cache?
  child.parent 
end

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解这个问题。查询缓存是你的朋友......!您对.parent的调用没有到达数据库。

如果您可以提供有关您尝试执行的操作的更多信息,则可能更容易帮助解决问题。