基于多租户 Rails 应用程序不使用 gemacts_as_tenant 区分域

问题描述

我正在使用 act_as_tenant gem 来构建一个多租户 Rails 应用程序,用于部署可定制的网站。在我的应用程序控制器中,我有

class ApplicationController < ActionController::Base
  set_current_tenant_by_subdomain_or_domain(:account,:subdomain,:domain)

假设我的应用程序在 platformdomain.io 下。当我创建一个新的应用程序时,我可以为它设置一个子域(比如“我”),新网站将可以在 me.platformdomain.io 下访问,这非常有效。但是,我也希望我的用户能够在他们自己的自定义域(如 customdomain.ioshop.customdomain.io)上部署他们的应用程序。然后,我在租户表 (account) 上设置了一个名为 domain 的新字段。出于测试目的,我购买了一个随机域 (mycustomdomain.io) 并将其添加heroku shop.mycustomdomain.io,然后heroku 为您提供了一个 DNS 目标:randomDnsTarget 并且我设置了一个 CNAME 以指向商店子域mycustomdomainrandomDnasTarget。然后,我创建了一个帐户,其子域为 shop,域为 mycustomdomain.io。但是,当我尝试访问 shop.mycustomdomain.io 上的自定义应用程序时,我可以在日志中看到我的应用程序正在尝试基于子域 shop.mycustomdomain 加载:

 Account Load (4.8ms)  SELECT "accounts".* FROM "accounts" WHERE "accounts"."subdomain" = $1 LIMIT $2  [["subdomain","shop.mycustomdomain"],["LIMIT",1]]

这行不通,因为我猜应用程序应该尝试加载域为 mycustomdomain 的帐户。我在这里错过了什么吗?这不是 acts_as_tenant 应该如何工作吗?我怎样才能实现所描述的行为?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...