【问题标题】:Nested Resources vs/and/or CanCan?嵌套资源与/和/或 CanCan?
【发布时间】:2012-07-17 21:44:49
【问题描述】:
我正在使用带有 CanCan gem 的 Rails 3。模型Users 和Networks 是has_many :through => Roles。这部分工作正常。
目前我正在使用 CanCan,因此在 /networks 页面上,它只会在用户有权访问时显示网络。这也很好用。
我知道 CanCan 可以与嵌套资源结合使用,但是 /users/1/networks 的路由是多余的吗?选修的?鼓励? RESTful?导轨-y?有什么特别的理由吗?我只希望用户能够看到他们有权访问的网络,但如果我已经将网络索引用作过滤器,我不确定嵌套资源是否是更合适的方法。
【问题讨论】:
标签:
ruby-on-rails
cancan
nested-resources
【解决方案1】:
对我来说,路线在使用您的应用程序的人的上下文中应该是有意义的。如果您以可以 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