Rails 3:引擎和gem有什么区别?
两者之间有什么区别,何时应该使用另一个而不是另一个?
rails术语中的Engine
实际上是Web应用程序的子应用程序。 例如,博客,论坛或简单身份validation:这些不是完整的应用程序,而是可以添加到任何rails应用程序的页面/视图/控制器/模型。
在rails2中,这将使用plugin
完成。 现在因为rails3引擎可以包装在gem
。
gem
是一个ruby库,可以在http://rubygems.org上找到,它是将ruby代码打包并分发给其他rubyists的标准(唯一)方法。
总结如下:
- gem:是一个通用库,可以轻松安装,由版本管理,具有依赖性等。
- 引擎:是Rails应用程序的子应用程序,并且由于Rails 3,它们作为gem分发(这很棒!)。
所以你什么时候使用其中一个:
- 如果要共享rubyfunction,请创建一个gem
- 如果您的rails应用程序的某些部分可以更普遍地使用,则创建一个引擎(并将其打包在gem中)。
希望这可以帮助。