作者godfat (godfat 真常)
看板Ruby
標題Re: [問題] 多個Models內共享同樣的named_class問題
時間Wed Dec 9 23:33:44 2009
: → 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
→ ryudo:嗯已經這麼做了~named_scope真棒真邪惡啊XD 12/10 15:12
→ godfat:datamapper 厲害多了 :/ 12/10 16:51
→ ryudo:真的嗎?.. 12/10 18:06