我对活动记录查询缓存有疑问。
我使用Rails控制台测试了活动记录查询缓存。
模型类如下。
class Catalog < ActiveRecord::Base
has_many :tickets
end
class Ticket < ActiveRecord::Base
belongs_to :catalog
scope :active, -> { where(status: STATUSES[:active]) }
end
第一次在控制台中进行目录查询时,在控制台中执行sql。
第二次执行catalog.tickets时,控制台中未执行任何sql。
另一方面
活动是故障单模型的范围。
在第一次catalog.tickets.active时,在控制台中执行sql。
第二次也是catalog.tickets.active时,在控制台中执行sql。
作用域的结果未缓存在模型中吗?
在范围内每次执行sql吗?