如何清理凌乱的嵌套资源

时间:2013-08-01 18:14:31

标签: ruby-on-rails

我有一个office_listing模型,它有一个neighborhood_id和一个city_id。由于列表模型需要创建两个ID,因此我设置了以下路径:

resources :cities do
  resources :neighborhoods do
    resources :office_listings

这是我知道如何将邻居和城市ID的背景赋予“新”cotroller行动的唯一方式。当他已经从邻居/城市导航到创建列表页面时,我不想强​​迫用户从表单中选择邻居和城市。有没有其他方法可以将这样的上下文传递给新页面而没有这么长的URL(邻居/ id / city / id / office_listing / new)?我打算添加一个需要办公室列表ID的查看,所以事情只会变得更加冗长。

1 个答案:

答案 0 :(得分:0)

您可以添加shallow: true以减少网址的长度。它没有解决嵌套可能带来的问题,但它确实清理了你的路线。

resources :cities, shallow: true do
  resources :neighborhoods do
    resources :office_listings

这也是你无法混合的东西。因此,您不能将某些路线视为浅层,而其他路线则不浅。这是一个全有或全无的条件。