使用Rails 3.2.13我有一个应用程序与某些通信设备(比如说200-300),每个设备使用自己的MySQL数据库,命名约定如xy000 + device.id(即xy000001,xy000012等)。 每个设备(数据库)都有几个继承自ActiveRecord :: Base的模型(表)。当用户登录到应用程序时,他选择了他想要使用的设备。当然,多个并发用户可以使用不同的设备,以便应用程序应该能够一次连接到多个数据库。
问题是:我如何构建模型来制作
ActiveRecord::Base.establish_connection
通话?如何根据用户输入选择目标数据库,以便每次都可以使用连接到不同数据库的相同模型?
希望解释清楚。如果没有,我可以更精确...... 谢谢!
答案 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