Buenas,
Mira tenes 2 formas, una mas manual y la otra mas prolija.
La manual:
class AbstractApplicationController < ActionController::Base
here, we hop into the front of the request-handling
pipeline to run a method called hijack_db
before_filter :hijack_db
here, weâ??re going to manually establish a connection
to the database we feel like connecting to.
def hijack_db
# completely ridiculous condition
is_odd = Time.now.hour % 2 == 1
# determine the database name
db_name = is_odd ? â??dis_odd_dbâ? : â??dat_even_dbâ?
# lets manually connect to the proper db
ActiveRecord::Base.establish_connection(
:adapter => â??mysqlâ?,
:host => â??localhostâ?,
:username => â??mr_robotoâ?,
:password => â??secret_secret_i_got_a_secretâ?,
:database => db_name
)
end
end
La mas prolija es poner otros connection strings en database.yml
ademas del development, testing y production, y luego poner en el
environment que se conectea esa base tambien.
Para ver mas:
http://wiki.rubyonrails.com/rails/pages/HowtoUseMultipleDatabases
Saludos
Diego D. Lapiduz
Sinai IT
www.sinai.com.ar
www.eminds.com.ar
On Oct 7, 2006, at 9:43 AM, alarkspur wrote:
Hola
Esto es mas una curiosidad que me asalto ayer mientras estaba
trasteando con el fichero database.yml.
Mi pregunta es si desde una misma aplicación y dependiendo del
usuario que se conectase a ella, ver si se podrÃa modificar el
fichero database.yml para que se accediese a una base de datos distinta.
Ejemplo, cinco usuarios, cinco bases de datos. cada uno accederÃa a
la suya.
¿es esto posible?
Aunque no lo he probado, se me habÃa ocurrido (una tonterÃa fijo :-
( que el usuario una vez valido, la aplicacion modificase el fichero
database.yml con la base de datos correspondiente. Creo que no
funcionaria por que habrÃa que reiniciar el webrick ¿no?
Alguna otra idea?
Gracias. Saludos.