Rails アプリケーションには次のスイーパーがあります。
class AgencyEquipmentTypeSweeper < ActionController::Caching::Sweeper
observe AgencyEquipmentType
#include ExpireOptions
def after_update(agency_equipment_type)
expire_options(agency_equipment_type)
end
def after_delete(agency_equipment_type)
expire_options(agency_equipment_type)
end
def after_create(agency_equipment_type)
expire_options(agency_equipment_type)
end
def expire_options(agency_equipment_type)
Rails.cache.delete("agency_equipment_type_options/#{agency_equipment_type.agency_id}")
end
end
「ExpireOptions」というモジュールへの after_update、after_delete、および after_create コールバックを抽出したいと考えています。
モジュールは次のようになります (「expire_options」メソッドは元のスイーパーの後ろに残ります):
module ExpireOptions
def after_update(record)
expire_options(record)
end
def after_delete(record)
expire_options(record)
end
def after_create(record)
expire_options(record)
end
end
class AgencyEquipmentTypeSweeper < ActionController::Caching::Sweeper
observe AgencyEquipmentType
include ExpireOptions
def expire_options(agency_equipment_type)
Rails.cache.delete("agency_equipment_type_options/#{agency_equipment_type.agency_id}")
end
end
ただし、キャッシュの有効期限は、スイーパー内でメソッドを明示的に定義した場合にのみ機能します。これらのコールバック メソッドをモジュールに抽出し、引き続き機能させる簡単な方法はありますか?