【发布时间】:2016-11-05 20:10:13
【问题描述】:
我的应用程序将命名空间用于管理目的。我最近尝试开始使用动作缓存,但是在尝试使用 expire_action 使缓存过期时遇到了一些问题。基本上,我的默认命名空间 newsposts 控制器中有一个索引操作,它使用如下操作缓存进行缓存:
class NewspostsController < ApplicationController
caches_action :index, :layout => false
def index
@posts = Newspost.includes(:author).order("created_at DESC").limit(5)
end
end
这会缓存views/host/newsposts下的视图。
默认命名空间没有修改数据的操作,它们都在我的管理命名空间中。在我的 Admin::NewspostsController 中,我试图在创建操作中使此缓存过期,如下所示:
expire_action(:controller => 'newsposts', :action => 'index')
但是,这将使位于 views/host/admin/newsposts 下的缓存文件过期。显然它不能工作,因为我在 admin 命名空间中,并且 rails 正在(正确地)寻找这个命名空间的过期缓存。遗憾的是我无法将命名空间参数传递给 axpire_action 方法,那么如何使另一个命名空间中的操作缓存过期?
【问题讨论】:
标签: ruby-on-rails-3 caching namespaces