我正在開發一個多公司網站,其中每家公司都有其數據庫,當用戶登錄時,數據庫將根據每個用戶將擁有的「company.id」字段進行更改。問題是,當公司「X」的用戶登錄然後登錄公司「Y」的另一個用戶時,它會更改影響所有登錄用戶的數據庫,每次更改時都會更改所有用戶的數據庫更改,而不是僅更改對於誰在 登錄的用戶,這是我的代碼更改數據庫:更改每個用戶的數據庫
def set_database
if user_signed_in?
company = (current_user.company_id).to_s.to_sym
ActiveRecord::Base.establish_connection(company)
else
ActiveRecord::Base.establish_connection(:'232')
end
end
變量「公司」將用戶的「COMPANY_ID」的價值,將與公司的數據庫的連接,例如公司有一個值爲「32」,然後將使數據庫中的連接.yml與:
'32':
adapter: sqlserver
mode: dblib
dataserver:
host: host
port: 1433
database: database
username: user
password: pass
timeout: 60000
azure: true
How co uld登錄每個用戶而不影響其他數據庫的其他人?
不確定這是否是一個好的解決方案,但可能將用戶數據庫信息存儲在會話中,然後引用它進行查詢? – bkunzi01