Rails - 如何使用 user_ids 限定应用中所有路由的范围

Rails - How to scope all routes in the app with user_ids

我想做 Basecamp 本质上做的事情,让我的 URI 是这样的:

www.example.com/:user_id/ www.example.com/:user_id/projects/12314

您只能访问您 user_id 范围内的内容。

目前我的想法是:

  1. 将所有其他资源嵌套在 users
  2. 使用范围scope: ":user_id" do

然后每当我创建路径时只传递 current_user

解决此问题的最佳方法是什么?

最好的方法是实现嵌套路由(您正在考虑的那种)来处理上述情况,其中资源将嵌套在父项下。但是您还需要考虑资源的个体存在,无论它们是否在没有用户的情况下存在,因为有时没有用户可以存在很少的路由,因此您还需要在 routes.rb.

中单独定义它们

作为参考:http://guides.rubyonrails.org/routing.html#nested-resources

例如:http://blog.8thcolor.com/en/2011/08/nested-resources-with-independent-views-in-ruby-on-rails/