2
私は私のモデルの一つではかなりのDB集約型クラスのメソッドを持っています。クラスメソッドの結果セットをキャッシュしますか?
class Page < ApplicationRecord
def self.collection_tree
pages = []
walk_tree do |page, level|
pages << page
end
pages
end
end
私は結果をキャッシュしたいと思いますので、この方法の唯一の最初の呼び出しは、DBクエリを呼び出します。
私はこのようにそれを試してみました:
def self.collection_tree
return @collection_tree if @collection_tree
@collection_tree = []
walk_tree do |page, level|
@collection_tree << page
end
@collection_tree
end
しかし、これはランダムに失敗スペックになった - 私が期待どおりに道スペックの間でリセットされないようです。
これをキャッシュする別の方法がありますか?