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
无法建立连接?
任何帮助将不胜感激。
谢谢。