0

使用 Rails 3.2.13 我有一个带有某些通信设备(比如 200 - 300)的应用程序,每个设备都使用自己的 MySQL 数据库,命名约定如 xy000 + device.id(即 xy000001、xy000012 等)。每个设备(数据库)都有几个继承自 ActiveRecord::Base 的模型(表)。当用户登录到应用程序时,他选择了他想要使用的设备。当然,多个同时用户可以使用不同的设备,因此应用程序应该能够同时连接到多个数据库。

问题是:我怎样才能建立模型来制作

ActiveRecord::Base.establish_connection 

称呼?如何根据用户输入选择目标数据库,以便每次都可以使用连接到不同数据库的相同模型?

希望解释清楚。如果没有,我可以更准确...谢谢!

4

1 回答 1

0

在您的 database.yml 文件中使用您想要使用的名称创建一个连接。例如,如果您要命名连接产品,您可能会有如下连接:

products:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: my_database
  pool: 5
  username: root
  password: abc123
  host: 127.0.0.1

然后在您的模型中,扩展 ActiveRecord::Base 并建立连接,如下所示:

class Product < ActiveRecord::Base
  establish_connection :products
end
于 2013-04-22T22:57:30.617 回答