でユーザーごとのデータベース接続を行うための最良の方法は何Rails
ですか?
これはRailsの設計手法としては不十分だと思いますが、ユーザーごとに1つのデータベースを使用する既存のWebアプリケーションを徐々に置き換えています。完全な再設計/書き換えは実行できません。
でユーザーごとのデータベース接続を行うための最良の方法は何Rails
ですか?
これはRailsの設計手法としては不十分だと思いますが、ユーザーごとに1つのデータベースを使用する既存のWebアプリケーションを徐々に置き換えています。完全な再設計/書き換えは実行できません。
このようなものをアプリケーションコントローラーに入れます。サブドメインと「_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
ActiveRecord::Base . Establish_connectionを見てください。これが、別のデータベース サーバーに接続する方法です。ユーザーを認識したり、データベースにマップしたりする方法がわからないため、これ以上の助けにはなりませんが、マスターデータベースにはその情報が含まれていると思います(接続情報はdatabase.ymlファイルにあるはずです) )。
幸運を祈ります。