Re: [問題] 多個Models內共享同樣的named_class問題

看板Ruby作者 (godfat 真常)時間15年前 (2009/12/09 23:33), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串2/2 (看更多)
: → godfat:定義你自己的 common base, 做成abstract class(Rails term 12/08 22 : → ryudo:試過 會不甩~ 12/09 16 : → ryudo:可否分享範例.. 12/09 16 : 推 godfat:看了一下,抱歉,你說得是 XD 看來是 rails 限制。不過, 12/09 18 : → godfat:class_eval (module_eval) 不好嗎? 12/09 18 : → ryudo:感覺比較邪惡XD 12/09 20 : → ryudo:雖然現在已經eval了~XD 12/09 20 我同意你的說法 XD 但是在 rails 裡大概是沒什麼選擇,因為他 named_scope 本身也是 module_eval, 因此會迫使你一定要 call named_scope 來做 meta-programming. rails 裡大量使用這種方式,往往會造成你只能遵守他的方式來走 我上面說成用 common base 來做的方式,是想到 datamapper 去了 因為我後來都用 datamapper 的方式在思索,一下子就沒想到 rails 不行。 DM 的 named_scope 其實就只是很普通的 class method, 因此一般的繼承就可以用了。他背後的作法是用 with_scope, 內部裡會記錄一個 query object, 把 condition 串起來, 因此不需要任何 module_eval 但當然也不是整個 DM 都完全沒用到 module_eval, 那不太可能 XD 適度就是了 -- Hear me exalted spirits. Hear me, be you gods or devils, ye who hold dominion here: I am a wizard without a home. I am a wonderer seeking refuge. Sacrifice -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.160.129

12/10 15:12, , 1F
嗯已經這麼做了~named_scope真棒真邪惡啊XD
12/10 15:12, 1F

12/10 16:51, , 2F
datamapper 厲害多了 :/
12/10 16:51, 2F

12/10 18:06, , 3F
真的嗎?..
12/10 18:06, 3F
文章代碼(AID): #1B7yDR6g (Ruby)
文章代碼(AID): #1B7yDR6g (Ruby)