【问题标题】:Rails 5 - How to have shared data across multiple tenants in apartment gem?Rails 5 - 如何在公寓宝石中的多个租户之间共享数据?
【发布时间】:2017-05-04 10:24:42
【问题描述】:

在 Rails 5 中,我正在使用 apartment gem 开发多租户功能。我必须向所有租户显示通用下拉数据,但它不起作用。

例如:我有cities 列表。创建了两个租户,两者都应该获得相同的cities 列表。但即使有数据,列表也不会显示。

添加的宝石是,

apartment (1.2.0)

在database.yml中,

default: &default
adapter: postgresql
pool: 5
encoding: UTF-8
database: TestApp
username: sample
password: pwd123

development:
  <<: *default
  host: localhost

如何显示所有租户的共同城市列表?

【问题讨论】:

    标签: ruby-on-rails ruby postgresql multi-tenant


    【解决方案1】:

    为此,您需要让模型:City 在租户之间共享,您可以通过配置 config/initializers/apartment.rb 文件来实现。

    在上述文件中添加/编辑以下行:

    config.excluded_models = %w{ City }
    

    注意:修改此文件后不要忘记重新启动服务器。

    您的代码不起作用的原因:每个租户都有自己的一组表,而名为cities 的表在每个租户中会有所不同。

    【讨论】:

    • 谢谢。它工作正常。但是还有一个问题,作为管理员,我如何获取每个租户的数据?因为管理员应该得到所有的报告。
    • 要从特定租户获取数据 - 不是在多个租户之间共享的 - 您必须切换到该公寓,然后获取数据,然后重新切换到您之前的租户以前用过。
    • 管理员应该能够一次获取所有数据。不切换可以吗?
    • 如果您想在不切换的情况下获取所有数据,为什么不在共享模型中拥有所有数据?
    • 因为 admin 是应用程序正常操作之外的特定用例(它是一个组合模式的单独应用程序)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2014-03-21
    相关资源
    最近更新 更多