Re: [問題] after_initialize and after_find

看板Ruby作者 (godfat 真常)時間13年前 (2011/08/26 07:42), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
※ 引述《tonytonyjan (南洋大兜蟲)》之銘言: : 環境: : Ruby 1.9.2 Rails 3 : 狀況: : 我在閱讀Rails Guide時,發現 after_initialize 和 after_find : 沒有相對的 before_initialize 及 before_find : 並說要使用時必須以 method define,不能用 handler : 摘錄: : If you try to register after_initialize or after_find using macro-style class : methods, they will just be ignored. : This behaviour is due to performance reasons, since after_initialize and : after_find will both be called for each record found in the database, : significantly slowing down the queries. : 我覺得這樣的解釋我還是看不太懂 : 1. 這和 self reflection 有關係嗎? 這邊 self reflection 是指? : 2. 一個 select query 可能包涵數萬筆資料,不管是用 method define 還是 handler : ,都要被呼叫數萬次吧?如此效能還不是一樣差嗎? 我也覺得沒差..... 應該一樣,不然就是他寫得有問題? : 3. 對一個 callback 同時使用 method define 和 handler 會導致 handler 被蓋掉嗎? 實驗看看? : 4. 我想看原始碼,但是在github裡面有如大海撈針,希望得到眾神的指引 你可以直接看電腦裡裝好的 source, 然後用搜尋的 抱歉現在沒有空,所以就先不查也不實驗了.. -- In Lisp, you don't just write your program down toward the language, you also build the language up toward your program. 《Programming Bottom-Up》- Paul Graham 1993 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.160.129
文章代碼(AID): #1ELjtv7- (Ruby)
文章代碼(AID): #1ELjtv7- (Ruby)