什么是在Rails应用程序之间共享功能的理想方式?

时间:2013-01-20 18:21:40

标签: ruby-on-rails gem

我有几个view helpers几乎用于每个项目,一组有用的rake tasksactive record的小扩展,一些宝石的扩展(inherited_resources)。

我想知道,管理这些“代码段”的好方法是什么?我不想为每个代码段管理每个代码段的宝石,甚至是每个“类型”代码段的宝石。是否足以将其捆绑成个人宝石?也许添加选项来指定要包含在项目中的帮助者/扩展名?

我可以使用一个'模板'应用程序,我可以捆绑这个代码,但问题是如果我更新一个项目的片段,我希望能够以最小的努力在所有项目上推出该更新(即bundle update)。

2 个答案:

答案 0 :(得分:1)

根据您的要求,我会将其全部捆绑在base-zenph-gem中并在项目的每一个中使用它,因为这是在不同项目中同步代码的最佳方式。

另外,为它做一个很好的文档,好像有人继承其中一个项目会很想知道发生了什么。

答案 1 :(得分:0)

您可以创建包含可重用功能的引擎,而不是使用Rails的gem,然后您可以在应用程序中指定引擎的使用。

您可以在Rails文档中了解更多相关信息:Rails Engines