首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在多个数据库上使用ActiveRecord

问在多个数据库上使用ActiveRecord
EN

Stack Overflow用户
提问于 2013-07-30 16:32:29
回答 2查看 19.5K关注 0票数 16

我正在编写一个工资系统,将与一个预先存在的系统集成。原来的系统有一个处理用户管理和一些全局配置的主数据库,下面有多个结构相同的数据库,基本上每个数据库都是一个公司工资数据库,所有这些都绑定到主数据库,因为它属于一个母公司,该母公司有许多子公司,每个子公司都有自己的人力资源部门。

我想知道的是,是否有任何方法可以基于cookie或其他存储他们希望连接到的公司的方法,使用之前的过滤器根据他们的输入动态更改ActiveRecord的目标数据库?

下面是一个例子:

用户A登录到站点,页面加载用户有权访问的可用公司,然后用户将选择一个公司,他们在该公司中具有管理员权限,他们添加一个员工,在该操作运行之前,rails将切换到相应数据库的连接,然后添加记录。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-30 16:40:53

您可以使用ActiveRecord::Base#establish_connection连接到所需的数据库。

您可以将db凭据作为Hash传递给establish_connection

代码语言:javascript
复制
establish_connection(
  adapter: 'mysql2',
  encoding: 'utf8',
  pool: 5,
  username: 'me',
  password: 'mypassword'
)

还有更多的示例here

票数 12
EN

Stack Overflow用户

发布于 2013-07-30 16:46:09

我不确定您是否能在运行时做到这一点,因为数据库连接是耦合到类(模型)的。

但是,你可以让不同的类连接到不同的数据库,我不想复制别人的答案,所以看看这篇文章

Connecting Rails 3.1 with Multiple Databases

把功劳给他

祝好运

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17942020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档