进行每用户数据库连接的最佳方法是什么Rails?
我意识到这是一个糟糕的Rails设计实践,但我们正在逐步取代每个用户使用一个数据库的现有Web应用程序.完全重新设计/重写是不可行的.
Kev*_*ske 10
把这样的东西放在应用程序控制器中.我正在使用子域加上"_clientdb"来选择数据库的名称.我有所有数据库使用相同的用户名和密码,所以我可以从db配置文件中获取它.
希望这可以帮助!
class ApplicationController < ActionController::Base
before_filter :hijack_db
def hijack_db
db_name = request.subdomains.first + "_clientdb"
# lets manually connect to the proper db
ActiveRecord::Base.establish_connection(
:adapter => ActiveRecord::Base.configurations[ENV["RAILS_ENV"]]['adapter'],
:host => ActiveRecord::Base.configurations[ENV["RAILS_ENV"]]['host'],
:username => ActiveRecord::Base.configurations[ENV["RAILS_ENV"]]['username'],
:password => ActiveRecord::Base.configurations[ENV["RAILS_ENV"]]['password'],
:database => db_name
)
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
916 次 |
| 最近记录: |