ActiveRecord::Base.establish_connection

Hi
    When strting my application I have three text boxes Username,
password and company name
A user on providing all these goes to user controller login_process
action..That means in my application database.yml have no relevance .It
is as
def login_process
ActiveRecord::Base.establish_connection(
          :adapter => 'postgresql',
          :host => '192.168.1.9',
          :username => 'postgres',
          :password => 'password',
          :database => 'gatekeeper'
        )
@the_site = Site.find_by_site_code(params[:company][:whichCompany])

#This sites table contains information of to which different databases
to connect,the adapter using,IPaddress of database server etc based on
company

ActiveRecord::Base.establish_connection(
                :adapter => @the_site.db_adapter,
                :host => @the_site.db_host,
                :username => @the_site.db_user,
                :password => @the_site.db_pw,
                :database => @the_site.db_name
             )
     -----code continues
end
      So what I am doing is suppose a user say user1 with password pass1
and gives company1 then it first connects to gatekeeper database and
from that based on site code gets adapter,host,db_user,db_pw and db_name
information and reconnected to that db(for example say appl_db on host
192.168.1.45) as above...And I could successfully do it
        Now my problem is suppose a second user say user2 with passord
pass2 and company company2 connects to the server(surely this user has a
sepearate db since he belongs to a differnt company say for example
appl_db2 on some other host) what happens is now the already logined
first user's (user1) database connection information changes to that of
second. That is the last login users information..
        I think I can make you understand the problem..Please help..Why
this happens..How to solve this?

Thanks in advance
Sijo