嵌套资源vs /和/或CanCan?

时间:2012-07-17 21:44:49

标签: ruby-on-rails cancan nested-resources

我正在使用带有CanCan gem的Rails 3。模型UsersNetworkshas_many :through => Roles。这部分工作正常。

目前我正在使用CanCan,因此在/ networks页面上,如果用户有权访问它,它将只显示网络。这也很好。

我知道CanCan可以与嵌套资源结合使用,但是/ users / 1 / networks的路由是多余的?可选的?鼓励? REST风格的? Rails的-Y?有什么特别的理由吗?我只希望用户能够看到他们有权访问的网络,但是如果我已经将网络索引用作过滤器,则不确定嵌套资源是否更合适。

1 个答案:

答案 0 :(得分:0)

对我来说,路线应该在使用您的应用程序的人的环境中有意义。如果您以CRUD路由的管理员身份登录,我希望通过/ networks完成此操作,因为您所做的与路由相关的所有事情都将在此处进行。

/networks            #list all networks
/networks/new        #add network
/networks/1          #show network
/networks/1/edit     #edit network

然而,从用户的角度来看,他们能够将自己添加/移除到新网络或查看他们所在的网络是有意义的。

/users/1/networks         #show networks user is in
/users/1/networks/add     #add self to network
/users/1/networks/delete  #remove self from network