Victor Sobreira escreveu:
> Eu quero fazer as conexões permanentes.
> Pq da forma que eu fiz.
> Ele faz uma conexão a cada request.
>
>
>
> 2009/7/2 Rodolfo S. Carvalho <
rodol...@gmail.com
> <mailto:
rodol...@gmail.com>>
>
>
> 2009/7/2 Victor Sobreira <
vict...@gmail.com
> <mailto:
vict...@gmail.com>>:
> > Bom tarde a todos.
> > Vim aqui pq tive umas duvidas e sou iniciante.
> > Estou tentando fazer uma série de testes no raisl 2.3.2
> > A primeira delas foi poder trabalhar com vários bancos sem
> precisar fazer
> > uma nova requisição a cada requerimento.
> > Fiz um before_filter no ApplicationController como seguinte codigo
> > before_filter :define_connection
> >
> > private
> >
> > def define_connection
> >
> > database = request.env['SERVER_NAME'].downcase
> > database = /app\.(.+)/i.match(database)
> >
> > if database[1].nil? == false
> > database = database[1].gsub('.','_')
> > ActiveRecord::Base.establish_connection database
> > end
> > end
> > --
> > Atenciosamente,
> > Victor Sobreira
> >
> > >
> >
>
>
> E qual era a dúvida mesmo?
> --
> Rodolfo Carvalho
> Web Developer
>
rodol...@gmail.com <mailto:
rodol...@gmail.com>
>
>
>
>
>
> --
> Atenciosamente,
> Victor Sobreira
>
> Celular: (88) 8812-6922 / (85) 8719-3391 / (85) 9901-7397
> Msn / Gtalk:
vict...@gmail.com <mailto:
vict...@gmail.com>
>
> >
Explicando melhor
crie a entrada:
externa_development no yml , especificando o schema (tem nos comentários
do yml explicando como e coloque os outros dados.
crie um modelo que vai ser utilizado para se comunicar com essa base:
|class Externa < ActiveRecord::Base
self.abstract_class = true # Estamos colocando ela como abstrata para
poder herdar nossos modelos dela.
establish_connection :externa_development
end #classe retirada do tutorial Rubynaut e quase não modificada ,
http://www.rubynaut.net/articles/2008/05/31/how-to-access-multiple-database-in-rails
class whatever < Externa # tabela whatever na base de dados Externa1
|end
e pronto , pode usar como qualquer outro modelo do rails , agora resta
saber se vai ficar gerando multiplas conexões, é assim que venho fazendo
quando desejo multiplas bases.