How to define template_root in controller?

Hi,

Based on the if the user is logged to site A or site B, with the single
codebase I have to show different views. What I mean is even though the
contents on both sites for a view will be same but the look and feel
will be different. So, I am planning to have a directory structure like
this

/app/views/reports
|
|
  -siteA
   |
   |
    -scr1
    -scr2
     .
     .
  -siteB
   |
   |
    -scr1
    -scr2
      .
      .

Reports controller will have all the methods for the scr1 & scr2. But
based on the site info (which I have in session), how can I set the view
root for the controller? I can check in each method and can use

render :template=>‘siteA/scr1’

or render :template=>‘siteB/scr1’

But is there a way to do it one time for the whole controller and not do
it with each render?

Thanks for any help.

I have implemented this with a patched version of the theme_support
plugin by Matt McCray. There is a patch floating around that makes it
compatible with Rails 1.2 (the official version is only compatible
with 1.1). I have submitted some patches to Matt, but he seems to be
AWOL.

Rails 2.0 will support the notion of view paths which will make the
whole process work a lot smoother (http://weblog.rubyonrails.org/
2007/2/4/new-feature-for-rails-2-0-multiple-controller-view-paths).

I’m currently in the process of deploying a major site using this
feature and I’ve got a writeup in the works about how I set it all
up. Should be posted in the next week some time in my blog at
http://darwinweb.net/. I might even fork theme_support and release a
plugin focused around multiple domain applications.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs