我正在構建一個rails應用程序來存儲許多不同的用戶提供的數據庫連接,並針對每個數據庫連接執行任意sql。我將每個數據庫連接字符串表示爲「連接」模型的實例,並且希望能夠編寫一個方法來查詢由每個連接表示的數據庫,理想情況下使用activerecord ORM。但是,當我使用下面的代碼中的establish_connection方法時,寫入的代碼將覆蓋整個連接表的數據庫連接。您如何建議我更改代碼以查詢任意數據庫,而不覆蓋整個Connections表的連接?使用activerecord嵌套數據庫
class Connection < ActiveRecord::Base
validates_presence_of :host, :port, :db_name, :db_user, :db_password, :db_type
def connect
self.connection = ActiveRecord::Base.establish_connection(
adapter: self.db_type,
host: self.host,
database: self.db_name,
username: self.db_user,
password: self.db_password
)
end
end
感謝您的想法......我最終創建了一個實例方法連接模型,它使用Sequel gem返回一個連接。這樣數據庫就不需要在database.yml中預先定義。但我會接受你的答案! – user1609682
@ user1609682謝謝,如果你接受(我希望它幫助你找到自己的解決方案)! – xmikex83