One Rails application running 100 distinct websites

I’m hoping to find someone who realizes the implications of this design strategy.I am attempting to build an application that can run 100 different distinct domains. (not a subdomain.domain.com but www.domain.com).

My strategy is to create an http request that looks like project.controller.action.keyvalue and pass this throughout the application. The “Project” record holds the particulars of each distinct domain.

Each view has .rhtml code that fills the readable areas with <%=“#{table.row.field}”%> and there is ZERO hardcoded text. Our views would list their elements like:

link_to: #{table.row.columname}

:Project => project

:Controller=>controller

:Action=> action

:Id => id

I know this ‘shifts’ away from the accepted DNN Rails paradigm, but didn’t DNN ‘shift’ when he designed Rails?I am grateful to hear if anyone is pursuing this direction.

Thank you,

David

David,

I pursued this direction already and created an internal CMS that takes it one step further: there are no file system (FS) view files, everything is int he DB. Basically you end up with one controller and one method for everything. I had to do some monkey patching but it works and it is hosting some sites that have decent traffic. I must say, though, that Rails is a little bit too big in features for such a direction so I am evaluating other implementation of the publishing layer. Nevertheless, the admin site is in Rails and uses much of the features that Rails has built-in. Write me off-list if you are interested in more details.

Sincerely,

Adrian Madrid

If you are using a Proxy server (like Apache) you could use Proxy Passthrough and Proxy Reverse (not sure of spelling here) for each of the domain VH entry. This way you can create your Rails app with normal routes and URLs like :controller/:action/:id

-- Long http://MeandmyCity.com/ - Free online business directory for local communities http://edgesoft.ca/blog/read/2 - No-Cookie Session Support plugin for Rails

"David Kennedy" wrote: