ruby-on-rails – Ruby on Rails中的宝石Vs插件Vs引擎

Ruby on Rails中的Gem包,插件和Engine之间有什么区别?

我认为我们在Rails3.2之前使用插件,在rails3.2发布之后,我们使用gem包作为插件,但是如何在ROR中使用引擎呢?

最佳答案
您从Rails 2(即,vendor / plugins文件夹下的插件)知道的插件已被弃用为Rails 3.2;在Rails 4中完全删除了对它的支持。现在,有一个“gemified plugin”的概念,其中插件基本上是作为宝石构建的,并且可以在不同的Rails应用程序之间共享。

但是为了回答你关于宝石vs插件的问题,请查看这个Stackoverflow answer.长篇小说,Rails 2宇宙中的插件是rails应用程序的扩展,而gem是一个打包的ruby应用程序。

对于Rails引擎,我发现这是Rails引擎的a pretty easy and intuitive definition

Rails Engines is basically a whole Rails app that lives in the container of another one. Put another way, as the docs note: an app itself is basically just an engine at the root level. Over the years, we’ve seen sen engines as parts of gems such as devise or rails_admin. These example show the power of engines by providing a large set of relatively self-contained functionality “mounted” into an app.

既然轨道引擎和插件都是ruby应用程序的类型,那么它们都可以在技术上被打包并用作宝石(通常)。

转载注明原文:ruby-on-rails – Ruby on Rails中的宝石Vs插件Vs引擎 - 代码日志