establish_connection使用的变量正在发生变化,但由于某种原因,模型在重新启动Rails之前不会切换到更新的配置。如何让模型成功动态连接到其他数据库?
class Submission < ActiveRecord::Base
establish_connection(ExtDBInfo.current_ext_db)
end
答案 0 :(得分:2)
您可以使用此代码段动态切换到新连接:
connection_info = Submission.configurations[RAILS_ENV].clone
connection_info['database'] = 'new_database'
Submission.establish_connection(connection_info)
在第一行,我们获得了连接的现有设置(clone
是必不可少的)。然后我们将设置更新为所需(在这种情况下只更新database
),然后重新建立连接。
如果您需要返回默认配置,可以使用:
Submission.establish_connection(RAILS_ENV)
查看更多信息http://apidock.com/rails/ActiveRecord/Base/establish_connection/class