我有一个 Rails 应用程序,其中包含一些相当通用的功能(例如管理用户)。我想在其他 Rails 应用程序中使用该通用功能而不复制它。困难的部分似乎是这段代码包含许多模型、 Controller 和 View 。
我知道 gem 和插件允许共享代码,但它们似乎更适用于共享实用程序和库功能,而不是应用程序的核心部分。
如有任何关于如何执行此操作的建议,我们将不胜感激。
最佳答案
我们正在使用 Rails 引擎在客户项目之间共享功能,并且已经取得了很大进展。引擎包含 Controller 、模型、 View ,甚至路由。它提供每个项目所需的核心功能(访问我们的内部内容管理系统),因此项目不必从头开始。
大部分代码的结构使其可以在项目中需要的地方轻松扩展或覆盖(主要是通过子类化)。它作为 gem 分发。
我无法向您展示代码(它不是开源的),但我可以为您指出一些有用的资源:
- Rails 3 Plugins - Part 1 - The Big Picture
- Rails 3 Plugins - Part 2 - Writing an Engine
- Rails::Engine documentation
- Plugin Authors: Toward a Better Future
希望这对您有所帮助!
关于ruby-on-rails - Rails : Re-using models, Controller 甚至 Rails 应用程序之间的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6121096/