首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 3.2.6 cache_sweeper不适用于自定义路由

Rails 3.2.6 cache_sweeper不适用于自定义路由
EN

Stack Overflow用户
提问于 2012-07-15 20:16:07
回答 1查看 241关注 0票数 0

我在运行Ruby1.8.7的Rails 3.2.6应用程序中使用片段缓存

在我的控制器里我有:

代码语言:javascript
复制
class ProductsController < ApplicationController
   cache_sweeper :product_sweeper

扫描程序适用于C操作,但不适用于我的POST方法"changeorder“。

我试过:

代码语言:javascript
复制
  cache_sweeper :product_sweeper, :only => 

并添加了所有的C-UD和也:转换顺序,但这是无效的。

我把这个加到我的清扫车里:

代码语言:javascript
复制
 def after_product_changeorder(product)
   expire_cache(product)
 end

它没有错误,但也不起作用。我删除了product_,这没有错误,也不起作用。

我确实将它更改为_product*s*,而这确实是错误的。

我唯一能让碎片过期的方法是:

代码语言:javascript
复制
expire_fragment('page_home')

在变更顺序控制器方法中。

记录在案的是我的扫地机:

代码语言:javascript
复制
class ProductSweeper < ActionController::Caching::Sweeper
  observe Product

  def after_save(product)
    expire_cache(product)
  end

  def after_destroy(product)
    expire_cache(product)
  end

  private

    def expire_cache(product)
      # expire_page products_path 
      # expire_page product_path(product)
      expire_fragment('page_home')
    end

end

我的控制方法是:

代码语言:javascript
复制
def changeorder
  params[:product].each_with_index do |id, index|
    Product.update_all(['displayorder=?', index+1], ['id=?', id])
  end
  render :nothing => true
end

我的路线文件-可能会有帮助:

代码语言:javascript
复制
resources :products do
  collection do
    post 'changeorder'
  end
end 

我确实改变了“转换顺序”来放置,但这也没有任何区别。

这里有什么想法吗?我经历了大量的SO页面,没有找到任何有用的东西,在其他领域找到了大量有用的东西,所以我没有浪费时间。

EN

回答 1

Stack Overflow用户

发布于 2012-07-16 08:25:10

线索来自于我得到的错误,以及我将只使用片段缓存的事实。

我的清洁工现在看起来是这样的:

代码语言:javascript
复制
class ProductSweeper < ActionController::Caching::Sweeper
  observe Product

  def after_save
    expire_cache
  end

  def after_destroy
    expire_cache
  end

  def after_products_changeorder
    expire_cache
  end

  private

    def expire_cache
      expire_fragment('page_home')
    end

end

不需要传递一个产品,因为我没有展示页面。

这将是一个更复杂的网页,我有一个展示页面!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11495268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档