class CommentsController < ApplicationController
def users_comments
posts = Post.all
comments = posts.map(&:comments).flatten
@user_comments = comments.select do |comment|
comment.author.username == params[:username]
end
end
end
-3
A
回答
1
这会产生如此多的查询。这个问题被称为n + 1(见这里:https://www.sitepoint.com/silver-bullet-n1-problem/)。
我建议使用这样的代码:
@user_comments = Comment.where(author: { username: params[:username] })
我认为你不需要帖子是吗?
-1
这告诉ActiveRecord在所有文章的初始请求之后立即从数据库检索相应的评论和作者记录,从而将数据库请求的数量减少到只有三个。
0
它只是一个普通的普通问题,任何人都可以谷歌它,因为它需要对现有代码的最小的变化,并没有任何关于Comment to post的反向关联的假设。 阅读关于的一些有趣的事实从这里
相关问题
- 1. 下面的代码有什么问题?
- 2. 下面的代码有什么问题?
- 3. 下面的代码有什么问题?
- 4. 如何解决下面的代码java.lang.StackOverflowError?
- 5. 如何解决下面的htaccess代码
- 6. jQuery - 日期控制 - 下面的代码有什么错误?
- 7. 解决乌托邦树,代码有什么问题?
- 8. 以下Python代码有什么问题?
- 9. 以下代码有什么问题?
- 10. 以下C代码有什么问题
- 11. 以下代码有什么问题?
- 12. 以下C代码有什么问题?
- 13. 以下代码段有什么问题?
- 14. 执行超时。下面的代码有什么问题?
- 15. 下面的ajax代码有什么问题?
- 16. 下面的ocaml代码有什么问题?
- 17. 下面的C++代码有什么问题?
- 18. 下面的代码有什么问题?这不是编译
- 19. 下面的C代码有什么问题?
- 20. 下面的android代码有什么问题?
- 21. 下面的Java代码有什么问题?
- 22. 下面的python代码有什么问题?
- 23. 下面的matlab代码有什么问题
- 24. 你有什么聪明的算法比下面的代码
- 25. 如何解决导航控制器的代码
- 26. 基于Spring mvc注解的控制器RequestMappingHandlerMapping有什么问题?
- 27. 代码有什么问题
- 28. 代码有什么问题?
- 29. 代码有什么问题
- 30. 你可以解释下面的代码
你会得到什么错误?请详细说明您的问题,并提供错误和日志 –
1.您不应该使用.all,它会调出内存中的所有记录,这会增加响应时间 2.您应该使用预先加载。阅读关于它[这里](http://guides.rubyonrails.org/active_record_querying.html) –