ruby-on-rails 路由到同一服务器上不同域的根路径

vd2z7a6w  于 5个月前  发布在  Ruby
关注(0)|答案(1)|浏览(79)

我正在尝试创建一个多租户的Rails应用程序。
如何为每个域定义根路径?我尝试了几种解决方案,但仍然有相同的错误:
错误控制器::Error(No route matches [GET]“/”

routes.rb

Rails.application.routes.draw do

  domain_routes = {
    pdg: 'padog',
    bp: 'bopi'
  }

  domain_routes.each do |controller, domain|
    constraints(domain: domain) do
      root to: "#{controller}/home#index", as: "#{controller}_root"
      draw "#{controller}_routes".to_sym
    end
  end

end

字符串
BP是我的主要领域

#{controller}_routes.br

is empty

编辑

我尝试了namespace:

domain_routes.each do |controller, domain|
    constraints(domain: domain) do
      namespace "#{controller}".to_sym, path: nil do
        root to: "home#index"
        draw "#{controller}_routes".to_sym
      end
    end
  end

zkure5ic

zkure5ic1#

我认为你的解决方案是这个宝石apartment
你需要的是这个
您可以使用域的MD5作为tenant,并创建一个表tenant或其他东西来管理租户。所以您不需要关心路由。只需关注逻辑。
举例说明:

# application.rb
module MyApplication
  class Application < Rails::Application
    config.middleware.use Apartment::Elevators::HostHash, {'example.com' => 'example_tenant'}
  end
end

字符串
FYI,有很多关于租户的选择给你。只是检查出来gem link

相关问题