2011-06-18 5 views
1

Rails 3のマルチテナントアプリケーションのデータベース設定を正しく変更する方法は?Rails 3のDBセパレーションのマルチテナントアプリケーション

この時点で、私はコード

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 

を以下のように、これは良い方法ですが、フィルタの前にApplicationControllerにの中でDBの設定を切り替えていますか?ユーザーセッションに関する懸念があります。セッションストアの設定を正しく変更するにはどうすればよいですか? :key?もう1つの問題は、ユーザーセッションがDBに格納されている場合、ApplicationControllerコードの前にラックミドルウェアにユーザーセッションがロードされているように見えるためです。

答えて

0

データベースを切り替えるには、solutionがきれいに見えます。あなたのget_db_nameメソッドのロジックであるconnメソッドを更新してください。お役に立てれば。

関連する問題