我们有一个用户表。用户有很多列表。
我们希望对关联模型列表进行分片,以便所有用户都保留在数据库“master”分片上。用户将获得shard_id列,列表将被拆分为不同的数据库“shard1”,“shard2”。
我们可以使用using
方法扩充我们的代码以访问正确分片上的列表:
Listing.where(user: current_user).using(current_user.shard_id)
然而,这是一个很大的代码更改。理想情况下,我们希望继续使用现有的关联语句,如下所示:
current_user.listings
让它在引擎盖下自动使用current_user.shard_id
。
有关此的任何建议吗?
答案 0 :(得分:0)
根据文档,current_user.listings
应该开箱即用。
八达通也处理协会。当您尝试获取与另一个对象关联的对象时,可以使用常规的ActiveRecord语法来获取对象
https://github.com/thiagopradi/octopus/wiki/How-Octopus-Works