我们有来自世界各地的客户,他们的要求之一是在美国或欧洲存储数据。
要做到这一点 - 我们的模型之一,应该在两个数据库(美国/欧洲)中复制信息,这意味着如果模型更新,它还应该为第二个数据库启动更新。如果创建了新记录,则应在第一个数据库中创建,第二个。所以基本上它应该在两个数据库中复制AR动作(除了select)。
我更新了database.yml以存储两个数据库配置:
development:
adapter: mysql2
encoding: utf8mb4
host: 127.0.0.1
username: xx
password: xx
database: _
pool: 25
development_usa:
adapter: mysql2
encoding: utf8mb4
host: 127.0.0.1
username: xx
password: xx
database: _usa
pool: 25
之后,我逻辑上考虑将操作覆盖为save
http://apidock.com/rails/ActiveResource/Base/save,但知道有更多的事情要做,而不是像.save
.update_attribute
这样做源代码,它们都调用不同的方法,因此覆盖所有这些函数是太多的工作。
有没有办法在提交后在两个数据库中克隆一个模型?