refs: http://hawkins.io/2012/03/defining_plugins_gems_railties_and_engines/
想必每个学习 Rails 的人都会有一个时刻需要考虑这个问题,只是这个时刻是什么时候,因人而异 “Gems vs Plugins vs Railties vs Engines”
Gems
Gem 的意义很宽泛,其实就是一个 Ruby 代码片段,这段代码可以做任何事情,可以包含Railties
或者Engines
。
Plugins 在 Rails3.2 之前,会有专门的目录存放 (vendor/plugins)。但是现在它和 Gem 几乎就是同义词。
Railties 它的用处就是绑定外部代码 (non rails) 和 Rails。“ActiveRecord, ActionPack, ActiveSupport”都是通过它连接到 Rails 的。
Engines 它就是 Railties 的一个 subclass,也是一个独立的 Rails 应用,所以 Railties/Rails 能做的它都能做,Railties/Rails 不能做的它也能做。它可以被打包成为一个 Gem。
PS: 本人仅仅是做了简单的转载,还望各位大神小神们来点神补充,神回复!