I have a Rails 2 app that serves multiple domains. That is, http://domainA.com and http://domainB.com are both served by the same Rails app. When I launch these manually, I specify which site I want to see by passing a site variable: site=domainB ruby script/server.
I'd like to use Pow so that I can access both sites via http://domainA.myapp.dev and http://domainB.myapp.dev (I'd also be happy with http://domainA.dev and http://domainB.dev if that's easier).
I can do this manually by adding export site="domainB" to my .powrc file, and editing that by hand (then doing touch tmp/restart.txt) each time I want to switch sites ... I'd prefer something a bit more automatic, though. I'm thinking something like the equivalent of subdomain == domainA ? export site="domainA" : export site="domainB" within the .powrc file.
I figured out how to do this, and wrote a blog post about it here. This is the gist of how it's done...
I configured my
before_filterto get the domain that's being accessed, and to use that throughout the Rails app. If the site is being accessed via the standard Rails app, it won't have a domain (it would just belocalhost). In that case, thebefore_filterlooks for thesitevariable being passed at the command line (and if that's not passed, then it uses a default site).The whole thing is actually done within Rails itself, and the only involvement that Pow has is that there has to be a symlink for each site being served by the Rails app.
The symlinks must also match the
request.domainthat's being checked in thebefore_filter. So, in this example there would be two symlinks -domainAanddomainB.