Я пытаюсь установить соединение с несколькими БД с ActiveRecord. В настоящее время мне нужно вставить данные в общей сложности 2 базы данных.Существует возможность увеличения баз данных No.Of.
Итак, я создал 2 класса динамически, которые будут расширяться от 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)
Затем я создал динамические модели, соответственно расширяющиеся от каждого класса
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)
Затем, когда япопытался вызвать метод foo
p ConnectionUser1.foo
p ConnectionUser2.foo
Это дает мне ActiveRecord :: ConnectionNotEstablished Ошибка.
Я слышал, что если модель не имеет соединения, ActiveRecord будет подключаться к своему родителю .
Таким образом, в соответствии с этим ConnectionUser1 должен использовать соединение Connection1, а ConnectionUser2 использовать соединение Connection2.
Тогда почему ActiveRecord
не удается установить соединение?
Любая помощь будет оценена.
Спасибо.