我想优化我正在制作的查询以获取对象集合上的所有标记,但我需要帮助。目前使用collect收集所有标签,但查看日志,我看到基本上已经发出了500个调用,并希望查看单个查询是否可以执行此操作。
@answers = Answer.limit(500).sort_by(&:plusminus)
@tags = @answers.collect {|answer| answer.tags}
答案 0 :(得分:0)
使用join
代替
Answer.joins(:tags).select('answers.some_field, tags.some_field')
它只会查询一次并返回一个数组或结果