我正在编写一个工资系统,它将与现有系统集成。原始系统有一个主数据库,用于处理用户管理和一些全局配置,下面有多个结构相同的数据库,基本上每个数据库都是一个公司的工资数据库,所有这些都与主数据库绑定,因为它属于父数据库公司拥有多家子公司,每个子公司都有自己的人力资源部门。
我想知道是否有任何方法可以基于 cookie 或存储他们希望连接到的公司的其他方法,使用 before 过滤器根据他们的输入动态更改 ActiveRecord 的目标数据库?
这是一个例子:
用户 A 登录到站点,页面加载用户有权访问的可用公司,然后用户将选择一家公司,他们在该公司拥有管理员权限,他们添加一名员工,在运行该操作之前,rails 将切换连接到适当的数据库,然后添加记录。
您可以使用ActiveRecord::Base#建立连接 http://apidock.com/rails/ActiveRecord/Base/establish_connection/class,连接到所需的数据库。
您可以将数据库凭据传递给establish_connection
as a Hash
establish_connection(
adapter: 'mysql2',
encoding: 'utf8',
pool: 5,
username: 'me',
password: 'mypassword'
)
还有更多例子here http://pullmonkey.com/2008/4/21/ruby-on-rails-multiple-database-connections/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)