Rails 3.2多个数据库

时间:2013-04-22 16:38:46

标签: mysql ruby-on-rails ruby activerecord

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

问题是:我如何构建模型来制作

ActiveRecord::Base.establish_connection 

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

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

1 个答案:

答案 0 :(得分: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