Best way to customize CSS for tenants on a multi-tenant app?

1k views Asked by At

I'm using the Apartment gem to build a multi-tenant app (each tenant lives in a different Postgres schema).

What's the best way in Rails to define custom CSS overrides for each tenant?

1

There are 1 answers

0
lorefnon On

Given that multi-tenancy is itself a deviation from the rails way of doing things, I am not sure there a definitive answer to be provided here.

I recommend the following approach, which I think fits well with your use case:

In your layout:

<html>
<head>
  <%= stylesheet_link_tag "tenant_#{@tenant_name}" %>
</head>
<body class="tenant-<%= @tenant_name %>">
</body> 
</html>

In your scss files:

For each tenant (say t1) you can have:

tenant_t1.css.scss

body.tenant-t1 {
  ... stylesheets specific to tenant 1 scoped within tenant-specific class ...
}