2013-07-21 90 views
1

我遇到了一些嵌套资源问题。我想知道是否有更好的办法。嵌套路由替代

我有一个待办事项列表应用程序与三个资源用户,列表和任务。每个用户都有他/她自己的待办事项列表。

我的问题是我怎么可以设置关联和路由来阻止我在路由文件中嵌套三层深层。

resources :users do 
resources :list do 
    resources :task do 
    end 
end 
end 

我想要防止这种情况。欢呼声

+0

用户可以访问其他用户的列表? – Stefan

+0

没有其他用户不能。 – Joshua

回答

1

因为用户只能看到他/她自己的列表和任务,你不必巢这些资源。在你的路由文件分开定义他们:

resources :users 

resources :lists do 
    resources :tasks 
end 

和检索您的认证框架当前用户:

class ListsController < ApplicationController 

    def index 
    @lists = current_user.lists 
    end 

end 
+0

好的,谢谢Stefan。 – Joshua

1

大概重复了: Rails 3 level deep nested resources

尝试用实验:浅选项:

resources :users, shallow: true do 
    resources :lists, shallow: true do 
    resources :task 
    end 
end 
+0

不知道如何标题搜索这样的话题。浅层选项会做什么以及如果有任何改变,我必须对控制器操作做出什么改变。 – Joshua