2011-06-27 99 views
0
application_controller 

    def database_changer 
    Item.establish_connection(
     :adapter => current_product.db_config.adapter, 
     :host  => current_product.db_config.host, 
     :username => current_product.db_config.username, 
     :password => current_product.db_config.password, 
     :database => current_product.db_config.database 
    ) 
    end 

當用戶選擇產品時,它設置會話[:product_id]並調用該產品的database_changer。我的問題是,當另一個用戶選擇另一個產品時,它也會影響其他用戶。例如:奇怪的建立連接問題

在用戶A的跡象,並選擇產品X太 用戶B跡象,他選擇 產品Y.現在,用戶A refreshs他 網頁,看看產品y的項目

這是怎麼發生的?

回答

0

無論應用程序/請求/會話如何,數據庫連接對應用程序中的類預期都是相同的。

更好的方法是將每個不同的數據庫源的子類Item分開,然後確定要使用哪個子類。

+0

謝謝先生。所有數據庫配置都是動態創建的並存儲在數據庫中我無法使用database.yml。產品創建時,會自動創建其數據庫。我找不到辦法做到這一點。 – heroku101

+0

我不明白的是他們如何影響他們的數據庫連接。用戶正在切換到他們的連接。什麼是建立連接?它的範圍是什麼。它影響所有應用程序嗎? – heroku101