我正在创建应用程序的架构并尝试找到最好的应用程序。关于它的几句话:
但是有些客户不需要全部功能,因此我们不需要将所有宝石都包含在它的Gemfile中。
组织它的最佳方法是什么?您对此有何看法?也许你可以提供更有效的方式?
答案 0 :(得分:1)
您可能需要考虑制作“主要应用”或核心功能a mountable engine,而不是Rails应用。
这意味着将控制器,模型和路由打包到一个gem中,该gem被添加到为特定客户定制的库存Rails应用程序中。这就是CMS:如Refinery和Radiant的结构。
这允许每个“Box”完全自由地拥有它想要的任何设置和宝石。如果您打算让客户自己托管(这是一场噩梦),这一点尤其重要。
它还使得开发和更新核心变得更容易,因为捆绑器将解析gem依赖关系。您可以将“默认”gems添加为可安装引擎gem的依赖项。
如果您想更轻松地创建/更新/开发各个应用程序,可以将其设置为“模板”应用程序的GIT分支。