当前位置:  开发笔记 > 编程语言 > 正文

在Rails中进行每用户数据库连接的最佳方法是什么

如何解决《在Rails中进行每用户数据库连接的最佳方法是什么》经验,为你挑选了1个好方法。

进行每用户数据库连接的最佳方法是什么Rails

我意识到这是一个糟糕的Rails设计实践,但我们正在逐步取代每个用户使用一个数据库的现有Web应用程序.完全重新设计/重写是不可行的.



1> 小智..:

把这样的东西放在应用程序控制器中.我正在使用子域加上"_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

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有