Re: Acceder a multiples bases de datos

Perdón por la torpeza. A ver,

he creado un modelo abstractnews.rb

class AbstractNews < AR::Base

 self.abstract_class = true

 def list_news

       ...

    end

end

y he creado otro modelo admin.rb

class Admin < AbstractNews

 set_table_name 'noticias'

 establish_connection :admin

end

y al ejecutar http://localhost/admin/list_admin_news

Me dice:

uninitialized constant AbstractNews

This error occured while loading the following files:

admin.rb

abstract_news.rb

¿no estoy poniendo las cosas donde son?

----- Mensaje original ----

De: Xavier N. [email protected]

Para: La lista sobre Ruby On Rails (rubyonrails.com) en castellano
[email protected]

Enviado: jueves, 1 de febrero, 2007 10:55:50

Asunto: Re: [Ror-es] Acceder a multiples bases de datos

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


Ror-es mailing list

[email protected]


LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto.
http://es.voice.yahoo.com

On Feb 1, 2007, at 1:13 PM, congrio wrote:

Perdón por la torpeza. A ver,

he creado un modelo abstractnews.rb

class AbstractNews < AR::Base

El archivo se llamaria

app/models/abstract_news.rb

y el padre de AbstractNews es ActiveRecord::Base. Lo tienes asi?

– fxn

On Feb 1, 2007, at 5:44 PM, Xavier N. wrote:

class AbstractNews < AR::Base

El archivo se llamaria

app/models/abstract_news.rb

y el padre de AbstractNews es ActiveRecord::Base. Lo tienes asi?

Me he dado cuenta de que use plurales en los ejemplos, solo añadir
que por convenio esa clase seria AbstractNew y las hijas tambien en
singular.

– fxn