我有一個循環,通過並更新我的記錄基於遠程記錄。所以我最終通過一個名爲symbol
的兩個char字符串鍵來選擇一些19
對象的子集。我想要做的是減少Postgres調用一次的.all
,並在需要時繼續使用find_by_symbol
語法來獲取它。在ActiveRecord中有一種方法可以緩存`.all`,以便`.find_by`可以使用它?
0
A
回答
1
另外,你可以建立一個哈希查找並自己處理「緩存」。
Hash[Object.all.map{|object| [object.symbol, object]}]
0
一旦你與all
它成爲一個Ruby對象,而不是一個範圍獲取數據,所以你需要使用的方法從可枚舉去取:如果這是類似於
Example.all.find { |r| r.symbol == 'example' }
:
Example.find_by(symbol: 'example')
同樣:
# Ruby Array
Example.all.select(symbol: 'example')
# ActiveRecord scope
Example.where(symbol: 'example')
顯然,您可以緩存Example.all
的結果並針對它運行方法,而不是每次都重新加載。
相關問題
- 1. 添加庫,以便它可以在所有項目中使用
- 2. 有沒有一種方法可以在tesseract中使用Asterix(*)?
- 3. 有沒有一種方法可以在Polymer.js中使用Slick-Carousel?
- 4. 我在哪裏可以找到有關ActiveRecord find_by方法的文檔?
- 5. 哪種方法可以使用ActiveRecord停用用戶帳戶?
- 6. 我可以註釋一個方法在Spring中可緩存嗎?
- 7. 緩存包含或必需的文件,以便它可以反覆使用?
- 8. 有沒有一種方法可以在Linux上使用C++
- 9. 如何保存表單以便主窗體可以使用它?
- 10. 是否存在更多pythonic方法來存儲參數,以便可以在函數調用中使用它們?
- 11. 有沒有一種方法可以一次使用Sequelize
- 12. 使javascripts通用,以便它可以應用於所有圖像
- 13. 您可以緩存數據以便以後離線查看嗎?
- 14. 有沒有一種方法可以定義一個全局變量,它可以從類方法訪問?
- 15. 轉換時間,以便它可以在整數中使用
- 16. 導入我的方法,以便AutoForm可以看到它們
- 17. 有沒有一種方法可以識別什麼是緩存特定文件?
- 18. 多種方法可以在一種情況下使用?
- 19. 有沒有一種方法可以使用書籤排序gmail?
- 20. 有沒有一種方法可以保存JavaScript DOM操作?
- 21. 我在哪裏編寫目標c類中的變量,以便它的所有方法都可以使用它?
- 22. 有沒有一種方法可以在Django模板中使塊可選
- 23. 有沒有一種方法可以使動作在Selenium IDE中可選?
- 24. 有沒有一種方法可以在python中輸入文字?
- 25. 有沒有一種方法可以在Magento中進行搜索?
- 26. 有沒有一種方法可以在模擬中配置Gatling?
- 27. 有沒有一種方法可以在Mongoose中進行投影?
- 28. 在Domino Designer中有一種方法可以打開一個MessageBox
- 29. 有什麼辦法可以緩存ASIFormDataRequest?
- 30. 有沒有一種方法可以在直播網站上使用drawWindow()方法?