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?
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)