所以,让我们说我有一个用户类,和我获取用户的实例,像这样:与查询模型预加载协会
@user = User.first
而且可以说用户的has_many:帖子,并张贴的has_many:评论。我想预先加载帖子和评论关联以便以后使用。这可以通过执行:ActiveRecord::Associations::Preloader.new.preload(@user, {:posts => :comments})
但是我也想对这个模型运行一些查询,它是预加载的关联。所以基本上,我想要一些相当于 User.where({:comments => {:post => {:topic => "math"}}).includes({:posts => :comments}).find(some_id)
的东西。但是,因为我已经加载了模型一次,我不想再加载它。有没有办法将where子句传递给上述Preloader
声明以创建一个大的SQL查询而不是几个较小的查询?我使用的是Postgres,从我的理解来看,通常意味着更少的查询意味着更快的查找时间。