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
LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto.
http://es.voice.yahoo.com