expire_fragment缓存在rails 4中
问题描述:
我在我的rails 4应用程序中使用片段缓存,我试图过期一个尚未缓存的片段。这就是为什么我收到一个错误说:expire_fragment缓存在rails 4中
"undefined method `expire_fragment' for #<ItinerarySweeper:0xb5a3510 @controller=nil>"
这是我的sweerp.rb文件:
class ItinerarySweeper < ActionController::Caching::Sweeper
observe Itinerary
def after_update(itinerary)
expire_cache(itinerary)
end
def after_destroy(itinerary)
expire_cache(itinerary)
end
def expire_cache(itinerary)
expire_fragment "itinerary_percentage_#{itinerary.id}"
expire_fragment "city_timeline_#{itinerary.id}"
end
end
这是我的控制器
class ItinerariesController < ApplicationController
cache_sweeper :itinerary_sweeper, :only => [:update, :destroy]
......
end
我能做些什么来解决这个问题?
答
尝试改变这一点:
def expire_cache(itinerary)
expire_fragment "itinerary_percentage_#{itinerary.id}"
expire_fragment "city_timeline_#{itinerary.id}"
end
到这一点:
def expire_cache(itinerary)
ActionController::Base.new.expire_fragment("itinerary_percentage_#{itinerary.id}", options = nil)
ActionController::Base.new.expire_fragment("city_timeline_#{itinerary.id}", options = nil)
end
+0
谢谢你的工作! –
可以,你应该一些代码,抛出这个错误? – matanco