0

I am using the Apartment Gem for the first time for Multitenancy in a Ruby on Rails project. I am trying to create multiple tenants for users in your digital library Rails application.

I am using Devise Gem for the authentication of the application, and I have generated the and I have generated config file by running the code below in my terminal

rails generate devise:install

I have also generated a User model for Devise using the code below in my terminal

rails generate devise User

And for the Apartment Gem, I have installed it and generated the config file by running the code below in my terminal

bundle exec rails generate apartment:install

I have also configured the config/initializers/apartment.rb initializer file as needed using the documentation provided, but when I run the command below in my terminal

rails generate devise:views

to generate the views for Devise, I get the error below

uninitialized constant Tenant (NameError)

I have tried to figure out the cause of the issue, but I still haven't been fortunate to get it fixed. I need some help. Thank you in advance.

Promise Preston
  • 24,334
  • 12
  • 145
  • 143

1 Answers1

2

I later realized that the issue was from the configuration that I made initially to Apartment Gem's config/initializers/apartment.rb initializer file.

After creating the User model, I also added it to the excluded models list in the config/initializers/apartment.rb initializer file.

config.excluded_models = %w[Tenant User]

I was supposed to instead replace Tenant in the excluded models list with the User model.

config.excluded_models = %w[User]

And that fixed the issue for me.

N/B: If I named the model name of my subdomain for the multiple tenants as Tenant, then I the configuration can be left like this

config.excluded_models = %w[Tenant]

But for my case, I named the model name of my subdomain for the multiple tenants as User

That's all.

I hope this helps

Promise Preston
  • 24,334
  • 12
  • 145
  • 143