看板 Ruby 關於我們 聯絡資訊
: → 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