`
hideto
  • 浏览: 2678097 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Rails Code Review 2: 不要循环ActiveRecord

    博客分类:
  • Ruby
阅读更多
THE WRONG WAY:
@a = A.find_by_name("hideto")

@list = []
@a.bs.each do |b|
  b.cs.each do |c|
    @list << c if c.ccc?
  end
end

这样将产生许多条SQL语句

THE RIGHT WAY:
@a = A.find_by_name("hideto", {:include => {:bs => :cs}})

@list = []
@a.bs.each do |b|
  b.cs.each do |c|
    @list << c if c.ccc?
  end
end

这样只产生一条SQL语句就完成了所有的查询
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics