Ich habe eine Multi-Tenant-App mit apartment
und devise
gem erstellt. Da, ich benutze postgresql, apartment
gem erstellt separate Schema für jeden Mieter. Meine Datenbank als einige Tabellen, user
Tabelle ist im öffentlichen Namespace, während pages
Tabelle in jedem mandantenspezifischen Schema ist. Ich kann mich für jeden Mandanten separat anmelden und separate Datensätze für die Seitentabelle jedes Mandanten erstellen.Schienen: Multi-Tenant-App und dynamisches Routing
Jetzt möchte ich diese Seiten für diese in einem Format wie diese tenant1.example.com/page-slug-here
zugänglich sein, ich habe in meiner routes.rb
Datei folgende Regel:
Page.where.not(slug: nil).all.each do |page|
get "/#{page.slug}", controller: "pages", action: "show", id: page.id
end
Diese Routing-Regeln funktionieren gut, wenn die App Single- war Mieter, aber in Multi-Tenancy funktioniert es nicht und wirft "no route matches" Fehler.
Meine Vermutung hier ist, dass der Datenbank-Aufruf in oben genannten Routing-Regel in public
Schema statt Tenant-spezifischen Schema sucht. Wie behebe ich dieses Problem?