ruby-on-rails - Rails 3.1 基于子域的 Controller 路由

标签 ruby-on-rails ruby routes ruby-on-rails-3.1

我当前收到错误:

No route matches [GET] "/tenant_admin"

我正在使用类似的东西:
http://example.com/accounts/1/tenant_admin

但我现在将帐户 ID 作为子域传递;
http://AccountName.example.com/

是否可以使网址像这样工作:
http://AccountName.example.com/tenant_admin


Routes.rb

  get "log_out" => "sessions#destroy", :as => "log_out"
  get "log_in" => "sessions#new", :as => "log_in"
  get "sign_up" => "users#new", :as => "sign_up"


  resources :users
  resources :sessions
  resources :password_resets

  resources :accounts do
    resources :tenant_admin
  end

  constraints(Subdomain) do
    match '/' => 'accounts#show'
  end

  root :to => "welcome#index"

最佳答案

您必须将租户路由放在 resources :accountsconstraints(Subdomain) 下。我不建议使用复制和粘贴,而是使用 lambda。

tenant_routes = lambda do
  resources :tenant_admin
end

resources :accounts do
  tenant_routes.call
end

constraints(Subdomain) do
  tenant_routes.call
end

关于ruby-on-rails - Rails 3.1 基于子域的 Controller 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7373014/

相关文章:

ruby-on-rails - 在 Ruby on Rails Restful Authentication 中,为什么 current_user 检查 HTTP 用户名和密码?

ruby - 如何使用 sort_by 方法根据输赢数据对球队进行排序

mysql - 显示关联模型的内容

asp.net-core - 未找到 IEndpointRouteBuilder 接口(interface)

mysql - RoR Rake 10.4.2 错误 : "Don' t know how to build task 'db:' "

ruby-on-rails - 如何在 Rails 中持久化一个对象

javascript - NodeJS 和 MongoDB。 POST 请求获取 404 代码

Mysql要检查的两个点是否在矩形内

ruby-on-rails - 雷和 order_by

ruby-on-rails - 无法在 Mac OS X 10.8.4 上安装 json 1.8 gem