【问题标题】:Rails routes for particular setup特定设置的 Rails 路线
【发布时间】:2012-05-15 11:48:47
【问题描述】:

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

我现在的设置是有一个“用户”命名空间来对应顶级导航,并且在命名空间中有第二级导航:“一般”、“项目”等。通过这个设置,每个表单都被选中从第二级导航有自己的控制器,这似乎有点奇怪。

  namespace :users do
    resources :general, :project
  end

这允许我拥有以下网址,其中 :id 属于“用户”

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

这看起来是否合理,或者是否有人对如何以 RESTful 方式处理嵌套导航设置有任何其他想法?遗留数据库很复杂,因为我没有“通用”、“帐户”模型或数据库表。对于每个表单,我需要从与“用户”模型关联的几个模型/表中提取。有一个“通用”控制器而没有一个“通用”模型似乎并不像我所困扰的那样。

【问题讨论】:

  • 这是在黑暗中拍摄的,但是您是否考虑过创建一个“通用”模型(不是 ActiveRecord::Base 的子类)来在“通用”属性时管理各种基础表上的操作是 CRUDed 吗?底层表都可以从 ActiveRecord::Base 继承来管理持久性,通用模型会操纵它们来维护数据库中的记录。然后,您的通用控制器或多或少地将通用类的实例视为 AR 模型,但是当您对其进行 CRUD 时,模型逻辑会启动并管理数据库中实际发生的事情。

标签: ruby-on-rails ruby-on-rails-3 rest routes


【解决方案1】:

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

resources :users do
  resources :general, :project
end

我还建议您查看Rails routing guide

【讨论】:

  • 感谢您的建议,但我遇到的问题是部分由于遗留数据库,我没有通用模型和项目模型。 “通用”表单可能包含存储在一个模型/表格中的地址信息和存储在另一个模型/表格中的电话信息。
猜你喜欢
  • 2021-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-24
  • 1970-01-01
  • 2015-01-26
  • 1970-01-01
相关资源
最近更新 更多