Gérer un sous-domaine par client
Vous avez sans doute remarqué que dans les applications de 37signals, les créateurs de Rails, vous devez choisir un nom de sous-domaine qui vous servira comme point de départ au moment de la connexion.
Par exemple : masociete.basecamphq.com
Je me suis longtemps demandé comment celà était possible : la déclaration d’un sous-domaine relevait pour moi de la bidouille du DNS, et vu les temps de mise à jour, je croyais à l’opération du Saint-Esprit.
Je vous rassure, il n’en est rien, et au détour d’un fil de discussion, j’ai découvert la solution, qui comme souvent sous Rails, est toute simple.
Il suffit d’ajouter dans le controlleur ApplicationController
:
before_filter { |c| c.account =
Account.find_by_subdomain(c.request.subdomains.first) }
Vous devez avoir paramétré votre serveur Web de manière à rediriger tous les sous-domaines vers votre application Rails (par exemple pour Apache dans la configuration du vhost ServerName *.example.com
). Vous devez également avoir une table accounts
comportant une colonne subdomain
.
La référence originale en cliquant ici.