公寓宝石Custom Tenants Rails 5

时间:2017-11-27 18:52:01

标签: ruby-on-rails postgresql rails-migrations apartment-gem

我正在使用Apartment gem构建多租户应用程序。我的核心功能在所有租户中都很常见。但是现在我想为TenantB添加一个表格,该表格不会出现在TenantA的模式中。如果我执行以下操作,则会将表格添加到有能力的租户中。

       class CreateStickies < ActiveRecord::Migration[5.0]

         def change
          if table_exists? :tenantb
           create_table :post do |t|
             t.text :body
             t.string :title

             t.timestamps
           end
          end
         end

       end

如何将此帖子表格添加到我选择的租户中?

1 个答案:

答案 0 :(得分:0)

据我所知,Apartement不支持您的要求。

如果您正在使用公寓开发Rails应用程序,则可能需要解决此问题。

Loading tenant specific configurations(从wiki无耻地复制)

#config/initializers/country_specific.rb
COUNTRY_CONFIGS = YAML.load_file(Rails.root.join('config', 'country_specific' , 'config.yml'))

#config/country_specific/config.yml
da:
site_name: Boligsurf.dk
se:
site_name: Bostadssurf.se

#app/controllers/application_controller
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :set_country_config
......
def set_country_config
    $COUNTRY_CONFIG = COUNTRY_CONFIGS['da'] #As default as some strange domains also refer this site, we'll just catch em as danish
    $COUNTRY_CONFIG = COUNTRY_CONFIGS['se'] if request.host.include? 'bostadssurf'
end

#Somewhere in your code
puts "Welcome to #{$COUNTRY_CONFIG['site_name']}"

您可能会探索上述功能,根据租户隐藏/公开您的应用程序的租户特定区域。