问题标签 [apartment-gem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1185 浏览

ruby-on-rails - Rails 引擎中的公寓 gem 迁移

我正在另一个 Rails 应用程序中构建 Rails 引擎。引擎的 rake 任务似乎仅限于应用程序:

而从应用程序的根目录:

我的问题是当我跑步时

我收到以下错误:

耙中止!不知道如何构建任务“公寓:迁移”

似乎它应该调用 app:apartment:migrate 任务,但我不确定如何执行此操作,因此我可以使用 RSpec 自行测试该引擎

0 投票
1 回答
1575 浏览

ruby-on-rails - 在 Heroku 上托管时如何拥有多个架构和多个子域?

我计划在我即将推出的应用程序中使用 Devise 和 Apartment 为每个创建帐户的组织创建子域。我想在 Heroku 上托管我的应用程序,但遇到了以下引用:

在数据库中使用多个模式的最常见用例是构建软件即服务应用程序,其中每个客户都有自己的模式。虽然这种技术看起来很有吸引力,但我们强烈建议不要使用它,因为它会导致许多操作问题的案例。例如,即使是中等数量的模式(> 50)也会严重影响 Heroku 的数据库快照工具 PG Backups 的性能。

什么技术可以很好地与 Heroku 一起在 rails 4 中托管 basecamp 风格的子域,许多用户可以登录到他们所属的子域?

如果 Heroku 不起作用,还有哪些其他 PaaS 选项可以很好地做到这一点?

0 投票
1 回答
7647 浏览

ruby-on-rails-4 - 在多租户 Rails 4 中使用 Appartment gem 时如何获取当前租户

根据请求初始化公寓时,如何找出哪个租户(模式)是当前租户

0 投票
1 回答
336 浏览

ruby-on-rails - 如何将 searchkick 与 pgSQL 模式/公寓一起使用并循环浏览模式?

我目前正在尝试在我的多租户 Rails 4 应用程序中使用 searchkick,该应用程序使用 Apartment 和 pgSQL 模式来处理租户。但是,我无法让 searchkick 工作。我不确定我做错了什么,但我想可能是当我重新索引时,它只在一个模式上重新索引。

我在想我需要循环浏览每个模式,但我不确定如何在公寓中进行。他们似乎为迁移自动执行此操作,但我试图让它与 searchkick 一起使用。我想从 searchkick 编辑以下 rake 任务:

如果您有任何建议,请告诉我

0 投票
1 回答
1330 浏览

ruby-on-rails - 如何在不使用 Heroku 工具的情况下使用 pg_dump?

我想使用公寓 gem 在 Heroku 多模式 pgSQL 应用程序上使用 pg_dump,但恐怕我有太多模式无法使其工作。

我查看了它,并在以下链接中从公寓宝石的创建者那里找到了以下内容

我是此处引用的 Apartment gem 的作者。我们在 Heroku 上使用它已经一年多了,它使用了模式。

使用它绝对没问题,我们仍然可以在一个应用程序中获得超过 100 个模式的出色性能,每个模式有 50 多个表。

@4ware 提到的文章谈到了 heroku 的 pg:backups 命令的问题。(我很确定那篇文章来自我们对他们的支持查询)

它肯定有问题,但这不是 Postgresql、模式或多租户模式的缺点,而是 heroku 工具本身的缺点。现在 Postgresql 在他们的数据库上支持 ingres,你真的不需要使用他们的内置工具。我们只在需要时进行 pg_dump,它的工作速度与预期的一样快。

如何使用外部工具?有人可以详细说明一下吗?

0 投票
3 回答
521 浏览

ruby-on-rails - 带有 searchkick 的多租户 Rails 应用程序

关于我的应用的一些信息:

  • 导轨
  • 使用公寓 gem 实现多租户
  • 通过 searchkick gem 使用 Elasticsearch

多租户意味着同一模型会有重叠的 ID。

我想到的第一件事是使用 searchkick's index_prefix,通过设置index_prefix不同的租户名称。但我意识到这行不通,因为 的值index_prefix是在应用程序启动时设置的。并且始终保持相同的值。

0 投票
0 回答
172 浏览

postgresql - 多租户 Rails 应用程序中新模式的 Postgresql 默认权限

在我的 Rails 4 多租户应用程序中,我使用 gem Apartment在 Postgresql 中创建新模式。

它工作得很好,但我对新模式的权限有疑问。

在 Postgresql 中,我创建了一个“备份”用户来备份我的数据库。

我定义了默认权限:

这适用于现有模式中的新表和序列(如 Postgresql 文档中所述),但不适用于新模式。

谷歌搜索数小时后,我找不到解决方案。

为新模式应用默认权限的最佳方法是什么?

谢谢

0 投票
0 回答
1475 浏览

ruby-on-rails - Rails & Apartment:基于 cookie 或域切换租户

我正在使用Apartment gem 和 Rails 4.1 设置多租户应用程序。

我的方法是将管理界面托管在单个域上,然后在自定义域上提供特定于租户的数据。管理用户将能够属于多个租户,并且能够在管理界面中在租户之间切换而无需切换域。

使用 Apartment,我已经能够使用会话 cookie 在租户之间切换而没有任何问题。这是我的代码:

我遇到的困难是 Apartment 在中间件级别提供基于域名的切换,我想保持这种方式,因为我假设中间件比使用 before_filter 更快。我看到了如何实现一个通用中间件来根据请求切换租户,但我似乎无法访问和解密传递给中间件的 proc 中的会话存储。

由于使用会话存储似乎对管理界面有意义,您对在中间件级别访问会话存储或将这两个方向结合在一起的其他方法有什么建议吗?

还是我只是太担心将租户切换保持在中间件级别?

0 投票
1 回答
1803 浏览

ruby - Apartment ruby​​ gem : 想要捕捉异常

我正在使用这间公寓作为红宝石。

我在 application.rb 文件中添加了这个:

当我尝试在 PostgreSQL 中不存在子域 'test' 模式的浏览器 url 'test.domain.local:3000' 中点击这个时,我看到了这个错误

我知道这是 gem 的正常行为,但想捕获此异常并将用户重定向到其他页面,我该怎么做?

0 投票
1 回答
3430 浏览

ruby-on-rails - 如何为 Rails 公寓定义种子文件

我已经设置了架构文件,但无法为租户定义种子文件,以便它只能为租户迁移运行。此外,一旦创建了用户并创建了租户,我也会尝试创建模式。