Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在每个客户都拥有的地方组织Rails应用程序';谁有自己的宝石清单?_Ruby On Rails_Ruby_Design Patterns_Rubygems - Fatal编程技术网

Ruby on rails 如何在每个客户都拥有的地方组织Rails应用程序';谁有自己的宝石清单?

Ruby on rails 如何在每个客户都拥有的地方组织Rails应用程序';谁有自己的宝石清单?,ruby-on-rails,ruby,design-patterns,rubygems,Ruby On Rails,Ruby,Design Patterns,Rubygems,我正在创建应用程序的架构,并试图找到最好的架构。关于它的几句话: Box解决方案(安装在客户机器上的每个应用程序) 有一个主应用程序和gems来扩展它(私有) 主应用程序有默认的gem列表 通过请求添加额外gems扩展的其他功能(我们的gems) 但有些客户不需要完整的功能,所以我们不需要将所有gem都包含到它的gem文件中 组织它的最佳方式是什么?您认为这种方式怎么样?也许你可以提供更有效的方式? < P>你可能想考虑制作你的“主应用程序”或核心功能而不是Rails应用程序。 这意味着将控

我正在创建应用程序的架构,并试图找到最好的架构。关于它的几句话:

  • Box解决方案(安装在客户机器上的每个应用程序)
  • 有一个主应用程序和gems来扩展它(私有)
  • 主应用程序有默认的gem列表
  • 通过请求添加额外gems扩展的其他功能(我们的gems)
但有些客户不需要完整的功能,所以我们不需要将所有gem都包含到它的gem文件中


组织它的最佳方式是什么?您认为这种方式怎么样?也许你可以提供更有效的方式?

< P>你可能想考虑制作你的“主应用程序”或核心功能而不是Rails应用程序。 这意味着将控制器、模型和路由打包到一个gem中,该gem被添加到针对特定客户定制的stock-Rails应用程序中。这就是CMS:es(如炼油厂和辐射厂)的结构

这允许每个“盒子”拥有它想要的任何设置和宝石。如果您打算让客户机自行托管(这是一场噩梦),这一点尤其重要

这也使得开发和更新内核变得更容易,因为bundler将解决gem依赖关系。您将添加“默认”gem作为可装载引擎gem的依赖项


如果您想让创建/更新/开发单个应用程序变得更容易,可以将其设置为“模板”应用程序的GIT分叉。

但我无法将所有控制器、模型和路由打包在一个gem中。客户应选择约5层。如何解决?