0
我正在嘗試與ActiveRecord建立多個數據庫連接。目前我需要將數據插入到總共2個數據庫中。 No.Of數據庫有可能增加。Ruby ActiveRecord動態模型創建
因此,我創建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
無法建立連接?
任何幫助將不勝感激。
謝謝。