Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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?

like image 728
Jacob Avatar asked Nov 22 '22 15:11

Jacob


1 Answers

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 ...
}
like image 98
lorefnon Avatar answered Nov 24 '22 06:11

lorefnon