Rails解决方案结构

问题描述:

我正在尝试构建一个rails解决方案,它将有更多的一个区域,例如我有一个面向经理的另一个用户和其他管理员。因为每个区域都有一些控制器,我不认为将所有控制器放在一个地方是一个好主意,因为会有很多控制器,并且更难以管理代码,我也希望能够像使用api一样使用应用程序的某些部分。以下是我心目中的解决方案应该如何构造:Rails解决方案结构

/ 
    product_library 
    users_library 
    managers 
    app 
    config 
    public 
    .... 
    users 
    app 
    config 
    public 
    .... 
    admin 
    app 
    config 
    public 
    .... 
    shared 
    app 
    config 
    public 
    .... 

我怎么能建立一个轨道解决方案,可以让我从product_library和user_library实例类,并允许我使用一些功能或视图来自共享(项目或库)? 如果我的构思解决方案的想法不好,请让我知道,我愿意提供更好的结构建议。请记住,我需要产品库和用户库的单独部件,因此可用于其他项目。此外,欢迎任何有关大型铁轨项目结构的文档。

你想要在Rails的普通结构中做,但在每个MVC组件下都有子文件夹。

app 
    controllers 
    managers 
    users 
    admin 
    shared 
    models 
    "By default Rails doesn't expect folders in here but it can be done...see below"   
    views 
    managers 
    users 
    admin 
    shared 

请参阅this answer如果你想分开你的模型。

+0

感谢您的回答,它非常有帮助,它给了我一个关于如何构建未来应用程序以及如何重构其他应用程序的想法。 – Mihai 2011-06-15 07:37:50

你最好的选择可能是分开申请。每个指向相同的数据库。你可以把你的product_library和users_library的东西放在一个gem中,由每个应用加载。或者只是把它放在贫民窟里,然后把这些库文件放到一个符号链接到每个应用程序的目录中。

+1

@Mihai这是我看过之前做过的事情的主要方式。您也可以查看Rails引擎,它们就像活动模板应用程序,您可以将它们作为宝石或插件包含到您的应用程序中。关于使用和创建引擎的一个很好的资源是[Crafting Rails Applications](http://www.amazon.com/Crafting-Rails-Applications-Development-Programmers/dp/1934356735/ref=sr_1_1?ie=UTF8&qid=1308085594&sr=8 -1)由主要的Rails核心贡献者Jose Valim完成。 – 2011-06-14 21:07:02

+0

这是最有意义的..特别是如果你需要在其他项目中使用产品/用户的东西。 – 2011-06-14 21:26:33

+0

我的开发机器在Windows 7上。我将使用产品和用户库的宝石想法。但对于项目结构,我认为NullRef拥有的解决方案更好。 – Mihai 2011-06-15 13:16:41