Skip to content

Instantly share code, notes, and snippets.

@semikolon
Created January 25, 2009 02:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save semikolon/51649 to your computer and use it in GitHub Desktop.
Save semikolon/51649 to your computer and use it in GitHub Desktop.
# in config/routes.rb
map.connect '', :controller => 'domain_tests', :action => 'domain1', :conditions => {:hostname => "domain1"}
map.connect '', :controller => 'domain_tests', :action => 'domain2', :conditions => {:hostname => "domain2"}
# in config/environment.rb after the initialize section
module ActionController
module Routing
class RouteSet
def extract_request_environment(request)
{ :method => request.method, :hostname => request.domain.split('.').first }
end
end
class Route
alias_method :old_recognition_conditions, :recognition_conditions
def recognition_conditions
result = old_recognition_conditions
result << "conditions[:hostname] === env[:hostname]" if conditions[:hostname]
result
end
end
end
end
# courtesy of http://www.smallroomsoftware.com/articles/2007/2/10/rails-routing-based-on-hostname
# in app/domain_tests_controller.rb
def domain1
render :text => "you've hit domain one"
end
def domain2
render :text => "you've hit domain two"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment