J'essaie d'établir une connexion DB multiple avec ActiveRecord. Actuellement, j'ai besoin d'insérer des données dans 2 bases de données au total. Il y a une possibilité d'augmentation dans les bases de données NoOf.Création de modèle dynamique Ruby ActiveRecord
Je crée 2 classes dynamique qui prolongera de ActiveRecord::Base
Object.const_set("Connection1",Class.new(ActiveRecord::Base) do
self.abstract_class = true
self.establish_connection({
:host=>"localhost", :username=>"root", :password=>"root", :database=>"db1", :encoding=>"utf8", :adapter=>"mysql2"})
end)
Object.const_set("Connection2",Class.new(ActiveRecord::Base) do
self.abstract_class = true
self.establish_connection({
:host=>"localhost", :username=>"root", :password=>"root", :database=>"db2", :encoding=>"utf8", :adapter=>"mysql2"})
end)
Ensuite, je crée des modèles dynamiques s'étend de chaque classe en conséquence
Object.const_set("ConnectionUser1",Class.new(Connection1) do
self.table_name = 'user'
def self.foo
all.count
end
end)
Object.const_set("ConnectionUser2",Class.new(Connection2) do
self.table_name = 'user'
def self.foo
all.count
end
end)
Puis, quand j'ai essayé d'appeler la méthode foo
p ConnectionUser1.foo
p ConnectionUser2.foo
Il me donne ActiveRecord :: ConnectionNotEstablished Erreur.
J'ai entendu dire que si le modèle n'a pas de connexion, ActiveRecord se connectera à leur parent.
Donc, selon ce ConnectionUser1 devrait utiliser la connexion de Connection1 et ConnectionUser2 utiliser la connexion de Connection2.
Alors pourquoi ActiveRecord
ne parvient pas à établir la connexion?
Toute aide sera appréciée.
Merci.