求解惑,很多 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
ActiveRecord
acts_as_tree acts_as_list acts_as_nested_set
到了 Rails 2 以后,这些插件都从 Rails 中抽取出来,变成了 gems 但是大家将这个命名规则保留了下来,作为一个 Convention,而且并不仅限于 AR 扩展插件了。 类似得还有 xxx_fu,这里得 fu 是 Kungfu 得意思。