Rails 连接切换问题

问题描述 投票:0回答:1

我在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

可以处理吗?

activeadmin ruby-on-rails-6.1
1个回答
0
投票

我可能错了,这就是你要找的吗?

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
© www.soinside.com 2019 - 2024. All rights reserved.