Vamos a ver, he cambiado un poco la estructura de la aplicación a ver si
se puede simplificar.
Tengo el controlador “noticias” con el método “listar_noticias”. Cuando
lo ejecuto en
http://localhost/noticias/listar_noticias me muestra las noticias de la
base de datos “noticias”
Pero también tengo el controlador “admin” con el método
“list_admin_news” que quiero que me muestre las noticias de la base de
datos “admin”. Para esto tengo el siguiente código:
En application.rb:
before_filter :set_extra_db_connection
def set_extra_db_connection
extra_coord =
YAML.load(File.open(File.join(RAILS_ROOT,“config/database.yml”),“r”))[“admin”]
Admin.establish_connection(extra_coord)
end
En admin_controller.rb
class AdminController < ApplicationController
def list_admin_news
require_auth 'users'
@noticias_admin = Noticia.find(:all)
end
end
En el modelo admin.rb
class Admin < ActiveRecord::Base
establish_connection :admin
end
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. ¿Qué puedo hacer?
----- Mensaje original ----
De: congrio [email protected]
Para: La lista sobre Ruby On Rails (rubyonrails.com) en castellano
[email protected]
Enviado: lunes, 29 de enero, 2007 10:29:59
Asunto: Re: [Ror-es] Acceder a multiples bases de datos
El problema es que estoy demasiado verde en rails y no se que tendria
que hacer exactamente
para poner el codigo en lib o en ApplicationController.
Lo que si tengo en aplication controller (en controllers/application.rb)
es el siguiente codigo para conectar
a la base de datos B
before_filter :set_extra_db_connection
def set_extra_db_connection
extra_coord =
YAML.load(File.open(File.join(RAILS_ROOT,“config/database.yml”),“r”))[“controladorb”]
Controladorb.establish_connection(extra_coord)
end
y el codigo del modelo de controladorb es:
class Controladorb < ActiveRecord::Base
establish_connection :controladorb
end
y en el controladora el codigo para intentar llamar a controladorb:
@noticiaexternas = Controladorb.buscar_noticia
que falla con el siguiente error:
undefined method `buscar_noticia’
for Controladorb:Class
Lo que busco es poder acceder a la vez a dos bases de datos desde un
mismo controlador
----- Mensaje original ----
De: Imobach González Sosa [email protected]
Para: [email protected]
Enviado: lunes, 29 de enero, 2007 9:58:17
Asunto: Re: [Ror-es] Acceder a multiples bases de datos
El Monday 29 January 2007 08:51:23 congrio escribió:
Sigo atrancado con esto.
Ahora, en mi aplicación si pongo
http://localhost/controlador_b/buscar_noticia funciona perfectamente
Entonces, es cuando quiero que el buscar_noticia sea ejecutado desde
el
controlador_a ejecuto http://localhost/controlador_a/listar_noticia y me
dice:undefined method `buscar_noticia’ for Controlador_b:Class
el código que falla es:
@noticias = Controlador_b.buscar_noticia
Hombre, para empezar, buscar_noticia es un método de instancia de
Controlador_b, y no un método de clase (que es como lo estás invocando).
De todos modos, no creo que instanciar Controlador_b y llamar a
buscar_noticia
sea una solución limpia. Si el código de buscar_noticia lo vas a invocar
en
más de un punto, quizás debieras pensar incluirlo en alguna biblioteca
(en
lib/) o incluso en el ApplicationController (prefiero la primera
solución,
pero bueno).
De todos modos, no sé qué quieres hacer exactamente.
Saludos.
–
Imobach González
Sosa
Correo-e: imobachgs en banot punto net
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_______________________________________________
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