我首先使用一对多活动记录预加载另一个activerecord。 是否可以过滤掉以下数据而无需再次查询数据库?
animal = @Animals.all.includes({:cats})
animal.where([:cat_category=>"home_cat"]) ### This one
答案 0 :(得分:0)
如果它位于方法内,例如
def load_something
animal = @Animals.all.load([:cats])
animal.where([:cat_category=>"home_cat"]) ### This one
end
Rails非常聪明,只能向DB发出1个请求。
如果你在rails console
中检查一行,然后输入另一行,它会发出2个请求,但是在应用中,rails只会从这个只有1个DB的请求中获取