可安装发动机的实际用途是什么?

时间:2011-11-16 16:38:21

标签: ruby-on-rails ruby-on-rails-3.1

刚刚在Rails的可安装引擎上观看“Railscast 277”,可安装引擎的实际用途是什么?

2 个答案:

答案 0 :(得分:3)

最好的例子之一是Devise(用于身份验证),它是一个引擎(插件),但它作为共享引擎安装;你也得到了命名空间引擎,这有助于保持上下文感。

另一个例子是Active Admin插件,错误通知插件......还有更多。就纯粹路由的“挂载”而言,您可以看到 - 如果使用命名空间引擎,您可以从应用程序本身的路径中提供完全隔离的rails应用程序。

您也应该考虑reading this

答案 1 :(得分:1)

两个主要用途:

  • 复用性。暴露大量应用程序功能的gem通常作为引擎分发。
  • 模块化。特别是对于大型应用程序,应用程序的某些部分通常看起来不像是要与主应用程序混合在一起,但是与提取到完全独立的应用程序过于密切相关。发动机可以很好地工作。

Spree将此视为极端:核心Spree框架是主要的Rails应用程序,为了自定义它,您可以编写引擎。这意味着您永远不会直接修改Spree核心。