Same model over multiple databases problem

Hello,

I run many gameservers (about 10), each gameserver has a different database and all gameserver's databases has the table "players" which is associated to the model Player. So every time I want to work with the Player model I need connect to a different database depending on which gameserver I am working on.

My problem is that I need to make rails choose which database to use before creating/loading the model Player. I know which database to use because there is a central database with the table players_map that has the name of all players and tells me which gameserver database that player is.

So in resume, any ideas how can I make rails to select the database connection before working with a model?

Thanks, Eduardo Bart

database yml:

external_db: adapter: oracle database: ext_db username: ext_user password: ext_password host: ext_host

model:

establish_connection :external_db

You didn't get it.

If a make a model like:

class Player < ActiveRecord::Base    establish_connection :gameserver1_database    ... end

Then every Player model will connect to gameserver1_database and retrieve only player from there: @player = Player.find(:first)

What I want is something more flexible that allows me to select which database to use, like this fake code: @player = Player.find(:first, :database => :gameserver1_database)

Ya I thought about it after I sent it here you go:

look at the bottom:

http://railsforum.com/viewtopic.php?id=24338