我在 3.1 中使用片段缓存。Rails 应用程序有一个片段没有过期,我不知道为什么。这是我想根据时间(每小时)过期的片段。我在 Heroku 上,使用 Memcachier Add-on 进行缓存。我似乎没有任何其他缓存问题。
在我的应用中,共有三个模型:用户、社区和活动。在 Community#index 上,有一个片段显示此社区中的用户的活动,我希望每小时过期。计算是 Activity 模型中的一种方法,工作正常 - 只是片段每小时到期(并且刷新)。
在我看来,我有:
<% cache("activity_#{community.id}", :expires_in => 1.hour) do %>
<-- content >
<% end %>
我还尝试通过在 User 模型中添加缓存的过期时间来使其成为计划任务。
def self.expire_activity
Community.find_each do |community|
ActionController::Base.new.expire_fragment('activity_#{community.id}')
end
end
我试图按照这个问题的答案来确定如何使模型中的缓存过期,但是使用这段代码,我得到了错误:
NoMethodError: undefine method 'expire_fragment' for #<Class:0x5ffc3e8>