7

我有一个 ruby​​ on rails 应用程序需要进行 gem 化。珠宝商,帮助创造基本的红宝石。但是,如何将 rails 应用程序打包为 gem?我有一个主应用程序,需要我的 rails 应用程序作为 gem。我无法将它们集成,因为主要的 rails 应用程序将用作管理应用程序来控制较小的应用程序,在其中作为 gems/engines 运行。

4

1 回答 1

5

从 Rails 3.0 开始,任何 Rails 应用程序都是引擎。要将您的应用程序包装到 gem 中,您应该:

  1. 使用捆绑器或珠宝商或其他东西创建新宝石。
  2. 将您的应用程序代码插入到 gem 的 lib/ 目录中。
  3. 您的应用程序的所有类都应该在 MyGem 模块中,因此请在您的类名之前添加 MyGem,例如:Article => MyGem::Article。您的所有控制器、模型等都应使用模块 GemName 命名。
  4. 您的文件 lib/my_gem.rb 应包含以下代码:

    module MyGem
      class Engine < Rails::Engine; end
    end
    

UPD

或者如果您将使用可安装的引擎会更好:

$ rails plugin new MyGem

它为测试和 gemspec 生成带有虚拟应用程序的可安装引擎。

于 2012-07-16T19:05:55.157 回答