问:活动记录关联已缓存。但活动记录范围是否未缓存?

时间:2018-08-03 10:33:09

标签: ruby-on-rails activerecord rails-activerecord

我对活动记录查询缓存有疑问。

我使用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吗?

1 个答案:

答案 0 :(得分:0)

使用lambda时不缓存数据。您可以在这里阅读更多:Why is my scope getting cached?