我在AA后端使用连接切换。根据会话我切换到存档数据库。问题在于,使用数据库密钥调用 ActiveRecord::Base.connected_to 会永久切换连接,而不仅仅是在块内。 AA 之外的另一个查询开始进入存档数据库。
# config/initializers/active_admin.rb
config.around_action do |controller, action|
if session['ARCHIVE'] == 'archive'
ActiveRecord::Base.connected_to(database: :archive, prevent_writes: true) do
action.call
end
else
action.call
end
可以处理吗?
我可能错了,这就是你要找的吗?
config.around_action do |controller, action|
if session['ARCHIVE'] == 'archive'
ActiveRecord::Base.establish_connection(:archive)
action.call
ActiveRecord::Base.establish_connection(:default)
else
action.call
end
end