I multi-tenant-arkitektur genom att använda en enda instans tjänar den flera konton. Varje konto kallas hyresgäst. Det finns så många olika tillvägagångssätt för att implementera arkitektur med flera hyresrätter med traditionella eller genom att använda alla ädelstenar. Genom att jämföra alla dessa hittade jag det enklaste sättet att implementera Multi-tenancy, det är med "Aktera som hyresgäst" pärla representation av Gem
pärla "fungerar_som_hyresgäst"
Efter att ha placerat detta i din gem-fil, kör paketet för att installera detta.
Användande:
It sets the current tenant by using subdomain and adds the ability to scope models to a tenant.
For setting current tenant place the below code in your application controller
Creating Tenant Account Model
class AddcolumnsToAccounts < ActiveRecord::Migration def up add_column :accounts, :sub_domain, :string end end
set_current_tenant_by_subdomain(:account, :subdomain)
Manuell metod för att ställa in aktuell hyresgäst
class ApplicationController < ActionController::Bas set_current_tenant_through_filter before_filter :find_the_current_tenant def find_the_current_tenant current_account = Account.find_by_subdomain(subdomain: 'subdomain') set_current_tenant(current_account) end
Avgränsa dina modeller
class AddAccountToColleges < ActiveRecord::Migration
def up
add_column :colleges, :account_id, :integer
add_index :colleges, :account_id
end
end
class College < ActiveRecord::Base
acts_as_tenant(:account)
end
Acts as tenant adds a method to validate uniqueness, validates_uniqueness_to_tenant
If you need to validate for uniqueness, you can do by using following code:
validates_uniqueness_to_tenant :title
Och fler över standardskenor validates_uniqueness_of är också tillgängliga. Använd följande syntax för att ange främmande nyckel
acts_as_tenant(:account, :foreign_key => 'Konto-ID')
som standard tar den account_id
Konfiguration
En initialiserare kan skapas för att styra alternativ i ActsAsTenant. Du kan ändra konfigurationsalternativen i config/initializers/acts_as_tenant.rb
ActsAsTenant.configure gör |config| config.require_tenant = falskt slut
config.require_tenant när den är inställd på true kommer att uppstå ett ActsAsTenant::NoTenant-fel när en fråga görs utan en klientuppsättning.
Källa: https://github.com/ErwinM/acts_as_tenant
Prenumerera för de senaste uppdateringarna
relaterade inlägg