Organisation of code in rails app

I was in a similar situation as well, and what Elliott has suggested
will work. However, you have to realize that the initialization of
that @tags variable will happen for every single call made to any
method belonging to any of the controllers. This is because the
controllers inherit from ApplicationController, and that filter is run
everytime before any controller method runs, so you'd effectively be
doing your initialization of stuff not only when your rails
application starts, but also each time a controller's method is
invoked.

I'm not sure what the best way to avoid having this happen is, but
what I've done is created another class (say 'ClassFoo') containing
the information I want to have initialized once, with this info being
contained in class variables, and accessed through class methods. In
the above init before_filter, I then make a call into some function
'foo' which is a class method of 'ClassFoo', which performs all the
initialization. However since this class is not an actual controller,
it's class variables can be made to be initialized only once (by
having some boolean class variable to check whether I've initialized
yet). So you're still going to end up calling 'foo' on each controller
method invocation, however the initialization can be controlled to
occur only once.

Hopefully that made some sense. I'm not claiming its the nicest way by
any means, but I couldn't find any other way.

Cheers,

Amir