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刷新他的 页面并查看产品Y的项目
这是怎么回事?
答案 0 :(得分:0)
无论app / request / session如何,整个应用程序的类的数据库连接都应该是相同的。
更好的方法是为每个不同的数据库源子类化子项,然后找出要使用的子类。