私のレールアプリには次のモデルがあります:
ユーザーに属するユニット_
ユニット数が 多い ユーザー
ユニットに属する倉庫内のすべてのユニットを取得するスコープがあります
class Unit < ActiveRecord::Base
scope :warehouse, where(:location => 'warehouse')
end
キャッシュされたデータを取得するためのcached_warehouseメソッドも作成しましたが、親モデルからユーザー ID を読み取ってユーザーごとにキャッシュを作成する方法がわかりません。
user = User.first
user.units.cached_warehouse
cached_warehouse クラス メソッドでユーザーの ID にアクセスするにはどうすればよいですか?
class Unit < ActiveRecord::Base
def self.cached_warehouse
Rails.cache.fetch([name, "warehouse_#{USER_ID}"]) do
warehouse.to_a
end
end
end