如何在Rails 3中正确更改多租户应用的数据库配置?
此时,我正在过滤器之前在ApplicationController中切换数据库配置,如下面的代码
class ApplicationController < ActionController::Base
before_filter :set_database
def set_database
db_name = get_db_name
spec = ActiveRecord::Base.configurations[Rails.env]
new_spec = spec.clone
new_spec["database"] = db_name
ActiveRecord::Base.establish_connection(new_spec)
end
end
这是一个好方法吗?我对用户会话有疑虑。如何正确更改会话存储设置,例如:key
?这里的另一个问题是,如果用户会话存储在DB中,因为似乎用户会话在ApplicationController代码之前加载到机架中间件中。