2012-02-14 147 views
4

我已经在Rails应用程序中构建了一个自定义管理面板,该应用程序允许通过gui界面编辑某些模型的内容。我最初设计的“管理员”应用程序充当父应用程序(通过其MVC,Gemfile,迁移等),并创建了子应用程序(在称为前端的目录中)充当管理员模型的网站界面。子应用程序从父管理应用程序继承MVC,允许设计网站前端,并在现有管理架构的基础上构建,而不必为每个新项目不断重新开发管理站点。其他应用程序中的包装Rails应用程序

我的本地机器上的结构目前看起来是这样的:

Administration Application <-- Individual git repo 
    -> app 
     -> admin 
    -> config 
    ... 
    -> frontends 
     -> Website_1 <-- Individual git repo 
      -> app 
      -> config 
      ... 
     -> Website_2 <-- Individual git repo 
      -> app 
      -> config 
      ... 

目前前端是由一个简单的frontend.yml文件中加载管理应用程序之前,在初始化的前端应用程序的配置标识。

但是,我觉得这是不谨慎的,但是,像这样嵌套结构。首先,git repos的嵌套在我的定位机器上很混乱,更重要的是,要在相对较短的时间内切换项目的上下文非常困难。例如,如果我想从Website_1切换到Website_2,我必须退出rails server并运行切换前端的rake任务。当前端使用不同的管理应用程序分支时,它也变得更加麻烦。为了继续开发我的项目,我发现自己花费了大量时间在git和rake之间切换上下文。

我想更改应用程序的结构,其中每个前端都是自己的独立Rails应用程序。看起来,这样可以更简单地切换开发环境 - 一次允许多个应用程序在rails server中运行,测试等。我还希望能够继续在git下安装管理应用程序 - 因为有贯穿一系列分支和标签的不同风格的应用程序。

什么是最好的方法来处理这种重新配置?我正在考虑创建一个管理应用程序的宝石,并从Bundler加载它。

+0

您正在使用哪个版本的Rails?你可能想看看引擎。 – colinross 2012-02-22 00:25:42

+0

这个Rails版本是3.2.1。 – 2012-02-22 21:30:10

回答

3

我认为宝石是你最好的选择。具体来说,我会考虑使用引擎;发动机是一个宝石使用这样的事情那是你的routes.rb内直接安装:

mount Administration::Engine => '/administration' 

引擎基本上是小型应用程序直接安装到其他应用程序,这听起来像你需要在这里正是。请致电Rails engine documentation。这里的a handy walkthrough you can follow包括一个链接到enginex,一个快速发电机引导引擎宝石。

相关问题