From 1d001e27117e1db616cd94013880848301cdf011 Mon Sep 17 00:00:00 2001 From: Antonio Terceiro Date: Fri, 20 Jul 2012 18:45:20 -0300 Subject: [PATCH] Move multitenancy logic inside the multitenancy class --- app/controllers/application_controller.rb | 8 +++----- lib/noosfero/multi_tenancy.rb | 11 ++++++++++- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 1f30fc1..dd89b45 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -1,6 +1,6 @@ class ApplicationController < ActionController::Base - before_filter :change_pg_schema + before_filter :setup_multitenancy include ApplicationHelper layout :get_layout @@ -67,10 +67,8 @@ class ApplicationController < ActionController::Base protected - def change_pg_schema - if Noosfero::MultiTenancy.on? and ActiveRecord::Base.postgresql? - Noosfero::MultiTenancy.db_by_host = request.host - end + def setup_multitenancy + Noosfero::MultiTenancy.setup!(request.host) end def boxes_editor? diff --git a/lib/noosfero/multi_tenancy.rb b/lib/noosfero/multi_tenancy.rb index bb520bc..65621b4 100644 --- a/lib/noosfero/multi_tenancy.rb +++ b/lib/noosfero/multi_tenancy.rb @@ -10,7 +10,16 @@ module Noosfero end def self.db_by_host=(host) - ActiveRecord::Base.connection.schema_search_path = self.mapping[host] + if host != @db_by_host + @db_by_host = host + ActiveRecord::Base.connection.schema_search_path = self.mapping[host] + end + end + + def self.setup!(host) + if Noosfero::MultiTenancy.on? and ActiveRecord::Base.postgresql? + Noosfero::MultiTenancy.db_by_host = host + end end private -- libgit2 0.21.2