ruby-on-rails - Ruby on Rails - 向所有路由添加 ID 参数

标签 ruby-on-rails routing

我想知道在 Rails 路由中实现以下功能的最佳方法是什么:

场景:用户注册账号=> accountID(账号)的网站成为网站内的主要实体。

示例:https://basecamp.com/:ID/ - 将授权用户带到 Basecamp 仪表板。从这里开始,所有 URL 都包含 :accountID,如 https://basecamp.com/:ID/projects - 列出账户下的所有项目。

提前谢谢了!

最佳答案

使用 路由前缀 :

scope ":account_id" do
  resources :projects
  ...
end

这将始终在范围内定义的每个资源 Controller 上为您提供 params[:account_id]。

在此处阅读更多信息:http://guides.rubyonrails.org/routing.html#prefixing-the-named-route-helpers

更新:这是一个完整的示例,包括您的“仪表板”默认路由
scope ":account_id" do
  root :to => "dashboard#index"  # http://example.com/12323/
  resources :projects            # http://example.com/12323/projects
  resources :todos               # http://example.com/12323/todos
  ...
end

关于ruby-on-rails - Ruby on Rails - 向所有路由添加 ID 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14867314/

相关文章:

ruby-on-rails - 从 ActiveRecord 模型获取 ID 列表的最佳实践

ruby-on-rails - Rails 错误(无法找到 'id' =注销的用户)与 Postgres

ruby-on-rails - 在循环/迭代内从 Rails Helper 渲染 HAML

nginx - 为什么 Laravel 在所有路由都有效时仍然记录 NotFoundHttpException?

ruby-on-rails - 返回 false 与在 Ruby 中引发异常 - 何时以及为什么?

ruby-on-rails - 无法激活 sqlite3 (~> 1.3.6),已激活 sqlite3-1.4.0

asp.net-mvc - 使用 catchall 通配符重定向到 Controller (但使用不同的主 Controller )

php - 单个 symfony 路由中的多个模式

ruby-on-rails - Rails路由和URI片段标识符

linux - 在 debian 的同一接口(interface)上具有不同网络路由的多个 ip 地址