`

rails缓存实例

    博客分类:
  • RUBY
阅读更多
给新闻添加页面缓存、以及更新时缓存清除:
class NewsController < ApplicationController
  caches_page :show, :index
  cache_sweeper :news_sweeper, :only => [:create, :update, :destroy]
  
  def index
    list
    render :action => 'list'
  end

  def show    
    @news = News.find(params[:id])
    render :layout=>"main"
  end

  def create
  end

  def update
  end

  def destroy
    News.find(params[:id]).destroy
    redirect_to :action => 'list'
  end

end


在environment中配置:
config.active_record.observers = :news_sweeper


定义NewsSweeper类:
class NewsSweeper < ActionController::Caching::Sweeper
  observe News
  
  def after_save(news)
    clear_news_cache(news)
  end
  
  def after_destroy(news)
    clear_news_cache(news)
  end
  
  def after_update(news)
    clear_news_cache(news)
  end
  
  def clear_news_cache(news)
    expire_page :controller => :news, :action => :index
    expire_page :controller => :news, :action => :show, :id=>news
    expire_page :controller => :main, :action => :news, :id=>news
  end
end


相关技术连接参考:[/url]http://www.ibm.com/developerworks/cn/web/wa-rails1/
0
0
分享到:
评论

相关推荐

    has_cache:Rails 缓存存储的便利包装器

    在您的类中使用has_cache提供了一个cached方法,该方法允许自动缓存通常在类或类的实例上可用的方法的结果。 它通过从调用cached的位置推断密钥,减轻了创建和跟踪密钥的麻烦,就像使用标准缓存存储接口一样。 用法...

    rails-memcache-dalli:在Rails应用程序中使用Dalli使用Memcache实现缓存

    这样做的问题是,在生产中,我们经常有多个Rails实例在运行,并且每个实例都会有自己的缓存存储,这并不是对资源的充分利用。 文件存储适用于较小的应用程序,但是效率不高,因为读取和写入硬盘驱动器相对较慢。 ...

    model_cache:用于缓存模型代码的 Rails 插件

    模型缓存ModelCache 是一个简单的 Rails 缓存插件,使用memcached 。 它为您的模型提供缓存功能,允许: 基于通用键(ActiveRecord cache_key在幕后添加)在模型实例方法中缓存代码块缓存您的实例方法,可选择使用...

    rails-pg-extras:Rails PostgreSQL数据库性能见解。 锁,索引使用率,缓冲区高速缓存命中率,真空状态等

    包含的rake任务和Ruby方法可用于获取有关Postgres实例的信息,这在分析性能问题时可能很有用。 这包括有关锁,索引使用,缓冲区高速缓存命中率和真空统计信息的信息。 Ruby API使开发人员可以轻松地将该工具集成到...

    Web开发敏捷之道-应用Rails进行敏捷Web开发-第三版.rar

    整体而言,全书既有直观的实例,又有深入的分析,同时还涵盖了web应用开发中各方面的相关知识,堪称一部内容全面而又深入浅出的佳作。 图书目录 第1章 简介 1 1.1 Rails是敏捷的 2 1.2 读你所需 3 1.3 致谢 5 第1...

    docker-compose-rails-selenium-example:Docker组合了3种技术,用于:Rails 5.0开发人员和Travis CI,缓存捆绑程序gem和使用selenium-webdriver

    将捆绑程序gem缓存到Docker卷中,该卷在构建和Gemfile更改之间持续存在 运行Capybara测试的Selenium Chrome独立实例,以及与测试浏览器会话进行交互的VNC连接 这些洞察力需要一段时间才能掌握-因此,我分享了一些...

    JAVA上百实例源码以及开源项目源代码

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    redis-session-store:一个基于Redis的Rails的简单会话存储

    该库不提供任何与缓存有关的内容,仅适用于Rails应用程序。 要获得其他框架或对缓存的直接支持,请查看 。 安装 对于Rails 3+,将其添加到您的Gemfile 。 gem 'redis-session-store' 配置 有关有效选项的列表,请...

    dalli-ui:Dalli的Web UI

    将设置为您的Rails缓存存储区。 # config/application.rb config . cache_store = :dalli_store 在您选择的路线上安装Dalli UI # config/routes.rb mount Dalli :: Ui :: Engine , at : "dalli" 在生产环境中...

    spree_shared:使用Apartment的Spree的多租户(每个租户数据库)

    使用请求子域来交换数据库,Rails缓存(首选项),图像路径。安装添加到您的Gemfile : gem 'spree_shared' , github : 'spree-contrib/spree_shared' , branch : 'master' 确保您的config/database.yml具有有效的...

    JAVA上百实例源码以及开源项目

     Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,得到Graphics实例,得到Image实例,填充颜色数组数据,初始化颜色数组。...

    faraday-http-cache:尊重HTTP缓存的法拉第中间件

    安装将其添加到您的Gemfile中: gem 'faraday-http-cache'用法和配置您必须使用您想要的法拉第实例中的中间件,以及合适的store来缓存响应。 您可以使用带符号的新快捷方式或传递中间件类client = Faraday . new do ...

    java开源包1

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包2

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包3

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包6

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包5

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包10

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包8

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

Global site tag (gtag.js) - Google Analytics