通过浅层嵌套资源遍历备份?

时间:2017-10-17 23:43:03

标签: ruby-on-rails routes nested ruby-on-rails-5

如果一个应用程序支持浅层路由,它会在遍历资源时截断资源,那么以前访问过的对象如何被移回?它是否需要深度嵌套的路由?

例如,假设我们有类似

的内容
resources :basement, shallow: true do 
  resources :lower_level do 
    resources :mid_level do 
      resources :top_level do 
        resources :roof do 
      end
    end
  end
end 

让我们假设每个地下室都有多个lower_level,每个lower_level都有多个mid_levels等。

一旦用户点击较低级别并最终到达屋顶,他怎么能回到相关的mid_level,因为:top_level /:top_level_id / roofs路径路径中没有:mid_level_id?< / p>

即使在相当简单的场景中,这种情况也会立即变得明显......一旦用户决定编辑屋顶,路径路径就只包含roof /:roof_id。如果先前的ID已经丢失&#34;?

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

据推测,您的Roof模型有一个外键将其链接到TopLevel。如果是这样,从数据库中提取的Roof记录具有可在呈现的页面中使用的属性top_level_id