2017-11-27 15 views
0

私はアパートの宝石を使用してマルチテナントアプリケーションを構築しています。私はすべてのテナントに共通のコア機能を持っています。しかし今、TenantAのスキーマに含まれないTenantBのスキーマをテーブルに追加したいと考えています。次のようにすれば、テナントにテーブルが追加されます。アパートメントの宝石カスタムテナントのレール5

 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 

どのように私の選択したテナントにこの投稿テーブルを追加できますか?

答えて

0

私が理解しているように、Apartementはあなたが求めているものをサポートしていません。

アパートメントを使用してRailsアプリケーションを開発している場合、回避策がある可能性があります。

Loading tenant specific configurations(臆面もなくウィキからコピー)

#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']}" 

おそらくあなたがテナントに基づいてアプリケーションのテナント特定の領域を露出/非表示にするには上記の機能を探ることがあります。

関連する問題