Rails 求助, includes 是如何双向绑定并且持久化的?

shiba · 2021年06月16日 · 最后由 shiba 回复于 2021年06月21日 · 465 次阅读

最近一个业务是仿照 includes 对多个模型进行取值,统一 sql 查询达到减少 IO 的频率,看了半天 incldes 的实现原理还是比较懵,rails 是如何对 sql 查出的数据进行持久保存的,includes 又是如何在调用 has_many 时直接取查询到的数据而不走数据库的.

有点没看懂题目描述,大概是这个?

https://ruby-china.org/topics/17866

顺便问下: includes 是咋和 “双向绑定” 这个词联系到一起的?

spike76 回复

这里的双向绑定是说数据如何知道当在 includes 中声明了某个模型关系的时候,在业务中通过实例调用时,rails 是如何保存模型关联与数据的绑定的,又是如何不触发 sql 查询而直接获取到数据的 (不考虑懒加载).所以我就不太严谨的用了"双向绑定"这个词

你想说的是为什么走缓存么?

bighuzi 回复

目前是想写一个拦截器,初始化所有需要使用到的数据,然后实现 sql 缓存机制让当前进程能通用缓存而不是再去查数据库,不知道可不可行.

需要 登录 后方可回复, 如果你还没有账号请 注册新账号