2012-05-06 62 views
0

我是新来的rails,并对如何最佳地路由我的特定应用程序有疑问。我正在使用遗留数据库,因此架构已经设置并且使事情变得复杂一点。该应用程序的布局包括一个顶部导航栏,其中包括'用户',然后对于特定的'用户'有另一个导航栏来显示/编辑各种表单。例如,一旦查询了某个“用户”,“一般信息”和“账户信息”就有单独的表格。特定设置的导轨路线

我现在的设置是让'用户'命名空间对应顶层导航和命名空间中都有第二级导航:'general','project'等。通过这种设置,从第二级导航中选择的每个表单都有自己的控制器,这似乎有点奇怪。

namespace :users do 
    resources :general, :project 
    end 

这让我有以下URL其中:ID属于“用户”

/users/general/:id 
/users/general/:id/edit 
/users/account/:id 
/users/account/:id/edit 

这看起来合理或有没有人对如何处理嵌套导航安装任何其他的想法以一种RESTful的方式?遗留数据库的复杂性在于我没有“通用”,“账户”模型或数据库表。对于每个表单,我需要从与“用户”模型相关联的几个模型/表中抽取。有一个'一般'控制器,而没有'一般'模型似乎不是什么困扰我的轨道。

+0

这是一个黑暗中的镜头,但是您是否考虑过创建一个“通用”模型(而不是ActiveRecord :: Base的子类)来管理各种基础表上的操作,当“通用”属性被CRUD时?底层表可以从ActiveRecord :: Base继承来管理持久性,而通用模型会操纵它们来维护数据库中的记录。然后,您的通用控制器或多或少地像AR模型一样处理一般类的实例,但是当您CRUD时,模型逻辑会启动并管理数据库中真正发生的事情。 –

回答

0

您正朝着正确的方向前进,但名称空间不会帮助您维护要查找的关联。相反,我想试试这个:

resources :users do 
    resources :general, :project 
end 

我也建议采取看看Rails routing guide

+0

感谢您的建议,但我的问题是,我没有一般和项目模型的部分原因是遗留数据库。 “一般”表格可能包含存储在一个模型/表格中的地址信息和另一个模型/表格中的电话信息。 –