If inherit active record , use instance to catch value will has lazy loading
所以在 Controller or Model 都會有效果
所以宣告 instance value 不會有 sql 查詢才是
在 @account
被頁面調用时,才會執行 sql
去查 Account table
以上我們的認知是没有錯的,可以参考這篇
But rails is too smart
實際去驗證其實 rails 會跟妳組合的 sql 去判斷是否觸發 lazy loading
舉個例子:
如果是 User has many account
那會在調用處,頁面調用時跑 sql 查找 Account table
如果是 User has many account
卻只查找一個,會直接跑 sql 查找 Account table
是 User has one account
那無論如何都會直接跑 sql 查找 Account table
喔