Gem 求解惑关于 acts_as_xxx

huobazi · March 09, 2012 · Last by lgn21st replied at March 09, 2012 · 3679 hits

求解惑,很多 gem 或者插件都是用‘acts_as_xxx’这样的名字,有什么典故吗?

印象中 1.x 版本有 rails core 维护的 acts_as_list 和 acts_as_tree,别的开发者就沿袭下来了

这个似乎是个传统,求真相

源于动态类型吧 http://en.wikipedia.org/wiki/Duck_typing

When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck.

when a model acts as a list, it is a list...

同样的传统好像还有 xxx_fu

这个得从 Rails 考古得角度来解释: 用这个名字命名得插件,最开始都是增强ActiveRecord行为能力的,统称 acts_as_behaviors* 我最早从 Rails 1.2.6 开始作 Rails 项目,那个时候,Rails 自身自带三个 AR 插件,如果没有记错的话,作者都是 DHH

acts_as_tree
acts_as_list
acts_as_nested_set


到了 Rails 2 以后,这些插件都从 Rails 中抽取出来,变成了 gems 但是大家将这个命名规则保留了下来,作为一个 Convention,而且并不仅限于 AR 扩展插件了。 类似得还有 xxx_fu,这里得 fu 是 Kungfu 得意思。

You need to Sign in before reply, if you don't have an account, please Sign up first.