---追記---
ワイルドカードドメイン対応のVirtualHostを記述する
DNSのワイルドカードドメインを追加した後、Apache側に対応するVirtualHostを書いてあげる必要がありましたが、記述していなかったため、別記事で追加しました。
---追記---
Apartment Gemを使った実装のサンプルです。
DBはPostgreSQLを利用しています。
RackサーバのPowを利用してサブドメイン動作を確認しています。
本番環境ではDNSに*レコードを追加することで、マルチドメインに対応することを想定しています。
今回のデモプログラムダウンロード
[ソースコード] (https://github.com/Synashida/apartment_rails_pg)
環境構築方法はデモプログラムダウンロード先のgithubリポジトリのREADME.mdにも記載していますし、他の記事もたくさんありますのでそちらを参考にしてください。
このサンプルでの要点は1行だけで
app/controllers/tenants_controller.rb のdef createメソッド内に
Apartment::Tenant.create(@tenant.subdomain)
この記述のみです。
Tenantレコードにデータが追加された直後にテナントを追加しています。
ここを自動化できればあとはDNSレコードにワイルドカードドメインを追加して
subdomain.本番環境のドメイン名/のリンクを利用者に提供するだけで
Web上ですぐにテナントが利用できるようになります。
簡単なので是非お試しください。