[Ror-es] Acceder a multiples bases de datos

Xavier Noria fxn at hashref.com
Thu Feb 1 09:55:50 GMT 2007


On Feb 1, 2007, at 10:23 AM, congrio wrote:

> El problema es que tanto noticias/listar_noticias y admin/ 
> list_admin_news se conectan los dos a la misma base de datos  
> sacando asi los mismos datos.

Ah, si tienes "el mismo" modelo representado en bases de datos  
distintas entonces hay que pensar un poquito mas, cuando leas sobre  
bases de datos distintas normalmente se asume que cada una hace  
persistente modelos distintos y ni siquiera relacionados en general.

La direccion de menos esfuerzo en el caso que explicas creo que es  
tener clases distintas para cada base de datos. Por ejemplo:

   class AbstractNews < AR::Base
     self.abstract_class = true
     ... siguen metodos de noticias ...
   end

   class NewsParaAdmin < AbstractNews
     set_table_name 'noticias'
     establish_connection :admin
   end

   class NewsParaANoticias < AbstractNews
     set_table_name 'noticias'
     establish_connection :noticias
   end

Y no hacer nada mas. Si ambas tablas son iguales en cuato a su  
estructura eso funciona gracias al duck typing, puesto que de un  
objeto NewsParaAdmin o NewsParaNoticias solo usaras que responden a  
tales y tales metodos.

Con ese codigo no hay que cargar ningun YAML ni hacer nada mas, con  
eso deberia valer.

-- fxn




More information about the Ror-es mailing list