2011-11-18 62 views
0

我有以下资源设置:重构:有一个嵌套的资源如果母公司未能

resources :sites do 
    resources :documents 
    # more nested here 
end 


resources :documents do 
    resources :notes, :except => [:show, :new, :edit] 
end 

我想要的音符控制器具有文档上下文。问题是,文档控制器本身取决于网站上下文。所以从上面创建的/文档网址都会引发500错误。我可以调整控制器代码来处理这个问题,但是我想知道是否有一种方法可以不创建/文档网址,只需:/ document /#id/notes

回答

0

对于其他任何可能有此问题的人您可以限制你不想使用的路由:除了@agmcleod对:notes的方式。因此,要限制该文件的URL要么是:

resources :sites do 
    resources :documents, :except => [:index, :show, :new, :create, :edit, :update, :destroy] 
    # more nested here 
end 

resources :documents, :except => [:index, :show, :new, :create, :edit, :update, :destroy] do 
    resource :notes, :except => [:show, :new, :edit] 
end 

可以消除任何必要的行动。

+0

不得不承认,自从11月份以后,我不记得我的问题了。我自从在我的模型上进行了一些重组,现在我有文档>版本>笔记,我其实也是这样做的。使用except选项只加载我需要的父资源的几条路线。我接受了你的答案,因为它是正确的。 – agmcleod