I am trying to create a school management system. There are two namespaces here: School and Teacher. I can maintain a plutonium accounting system for Master. Now I also need to maintain the same for school. Below are my current configurations:
Initializers / plutus.rb
Plutus.config do |config|
config.enable_tenancy = true
config.tenant_class = "School"
end
models / teacher.rb
has_many :accounts, class_name: "Plutus::Account", foreign_key: "tenant_id"
after_create :create_plutus_accounts
before_destroy :destroy_plutus_accounts
def create_plutus_accounts
Plutus::Asset.create(name: "Accounts Receivable", tenant: self)
Plutus::Asset.create(name: "Cash", tenant: self)
Plutus::Asset.create(name: "Sales Tax Paid", tenant: self)
Plutus::Revenue.create(:name => "Sales Revenue", tenant: self)
Plutus::Expense.create(name: "Workwear", tenant: self)
Plutus::Expense.create(name: "Travel", tenant: self)
Plutus::Expense.create(name: "Phone and Internet", tenant: self)
Plutus::Expense.create(name: "Professional Development", tenant: self)
Plutus::Expense.create(name: "Professional Literature", tenant: self)
Plutus::Expense.create(name: "Administration Costs", tenant: self)
Plutus::Expense.create(name: "Phone and Internet", tenant: self)
Plutus::Expense.create(name: "Office Supplies", tenant: self)
Plutus::Expense.create(name: "Maintenance", tenant: self)
Plutus::Expense.create(name: "Representation", tenant: self)
Plutus::Expense.create(name: "Other General Costs", tenant: self)
Plutus::Liability.create(name: "Unearned Revenue", tenant: self)
Plutus::Liability.create(name: "Sales Tax Payable", tenant: self)
Plutus::Equity.create(name: "Equity", tenant: self)
end
def destroy_plutus_accounts
Plutus::Account.where(tenant: self).destroy_all
end
I tried to copy the paste of the same teacher model code into the school model. After that, when I run School.first.create_plutus_accounts
, I encounter the following problem:
ActiveRecord::AssociationTypeMismatch: Teacher(#70257249141660) expected, got School(#70257261264760)
source
share