作者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
1F:→ ryudo:嗯已经这麽做了~named_scope真棒真邪恶啊XD 12/10 15:12
2F:→ godfat:datamapper 厉害多了 :/ 12/10 16:51
3F:→ ryudo:真的吗?.. 12/10 18:06