Skip to content

Instantly share code, notes, and snippets.

@tbuser
Forked from anonymous/gist:44410
Created January 7, 2009 20:46
Show Gist options
  • Save tbuser/44419 to your computer and use it in GitHub Desktop.
Save tbuser/44419 to your computer and use it in GitHub Desktop.
Basecamp-style dynamic subdomains
# 1) Point *.example.com in your DNS setup to your server.
#
# 2) Setup an Apache vhost to catch the star pointer:
#
# <VirtualHost *:80>
# ServerName *.example.com
# </VirtualHost>
#
# 3) Set the current account from the subdomain
class ApplicationController < ActionController::Base
before_filter :set_current_account
private
def set_current_account
@current_account = Account.find_by_subdomain(request.subdomains.first)
end
end
# 4) Tie all top-level requests off the current account
class CustomersController < ApplicationController
def index
@customers = @current_account.customers
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment