Rails代码共享:gem vs plugin vs submodule?

时间:2012-05-12 07:24:27

标签: ruby-on-rails ruby ruby-on-rails-3 git

这是一个场景:需要在多个Rails应用程序之间共享特定模型的小型闭源项目。基本上有一个数据库和多个应用程序以不同的方式读/写,但都通过相同的界面。我想让这个DAL的代码只在一个地方实现,并以某种方式与需要它的所有项目共享。

使用最新的Rails版本,假设我使用git作为VCS,最佳方法是什么?您经常阅读的三个竞争者是宝石(我知道它可以创建仅供内部使用,给您托管自己的宝石服务器),Rails插件和git子模块。

我无法找到原因的概述,鉴于所有三个选项,人们可能想要选择一个而不是另一个。我希望大家可以帮助我!

谢谢!

2 个答案:

答案 0 :(得分:3)

我建议您使用gems,并将它们捆绑在您的应用程序中。我们正在使用几个私有宝石并将它们保存在vendor/cache目录中。

插件已弃用,将被删除。 (Rails 4.0我认为会删除它们)它们也会引起警告。

使用子模块是一个有趣的想法,但我仍然坚持使用宝石。

答案 1 :(得分:2)

将一些常用代码封装到gem中是一种很好的做法。有Gemfury,宣称自己是“私有宝石云服务器”,提供存储私人宝石的服务。