Rails Counter Caches (Example) - GoRails
Learn how to use counter caches in your Rails app
gorails.com
Counter Caches 不是什麼特別難的東西,秉持著「一天一Go Rails」的概念,把一些以前「會」的工具更理解背後的原理!
特別學到的概念:
- 在migration裡面寫純SQL
- 用reversible在不改變 change methods的情況下,指定哪些方法要在migrate 跟rollback 的情境下使用
[在migration裡面寫純SQL]
根據 http://ryan.mcgeary.org/2016/02/05/proper-counter-cache-migrations-in-rails/ ,在25,000~100,000筆資料的情況下,純SQL的所花的時間會比ruby 快100倍!
督促自己要多加強SQL的能力 QQ
[reversible]
過去要在migrate跟rollback要做不同處理時,只能使用 up and down 兩個methods(default 是change),可以改用reversible 接一個block ,來指定哪些methods 是在migrate的時候處理、哪些在rollback的時候處理。