我渴望加载一个模型对象及其关联:
user= User.includes(:posts).find(1)
但是在代码中的某些点,我想做这样的事情:
user.posts.where(:topic => "x")
但这只是再次重新运行查询。所以相反,我想我会这样做:
user.posts.select{|post| post.topic == "x" }
这不会重新运行查询。但我有几个问题。
首先,这是正确的做法吗?
其次,我对 select 在这种情况下的作用有点困惑。因为当我运行最后一行时,即使我没有使用包含函数,它第一次运行查询,然后如果我再次运行它,它不会......所以是否涉及某种缓存?因为当我使用 where 子句时,它每次都会运行查询。
谢谢你。