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) –