重构:拥有父级失败的嵌套资源

时间:2011-11-18 16:36:27

标签: ruby-on-rails-3

我有以下资源设置:

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


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

我希望notes控制器拥有文档上下文。问题是,文档控制器本身取决于站点上下文。所以从上面创建的/ document url都会抛出500错误。我可以调整控制器代码来处理这个问题,但我想知道是否有办法不创建/ document url,只需:/ document / #id / notes

1 个答案:

答案 0 :(得分: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

您可以根据需要删除任何操作。