Here's how I do it:
I create a class which contains all the logic needed to dictate the behaviors of a subdomain. Let's call this class Subdomain (usually it would be an ActiveRecord class). This class will typically just initialize a bunch of instance vars used as settings that make a Subdomain unique.
One of those settings is going to be one or more query filters to restrict data access. These are just SQL fragments (or :conditions hashes) which will modify the WHERE clause of all queries to restrict the query to the conditions suitable to the subdomain. So, in your case we might have "AND subdomain_name = 'george'" as the query filter.
attr_reader :site_name, :query_filter
... does a query to get all settings...
... load results into instance vars...
Then early in application.rb, you would create an object something like this:
@current_subdomain = Subdomain.new
You may or may not need the join part (I do state and county subdomains for some stuff, and that will join a multiple subdomin list into a single string).
Now for all the queries which collect data, you can use the value(s) in @current_subdomain.query_filter to add to the :conditions or modify an SQL string to restrict the query to specific records pertaining to the subdomain.
-- gw (www.railsdev.ws)