`

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
分享到:
评论

相关推荐

    Ruby On Rails开发实例-源代码

    以及Rails框架的核心概念,如路由(Routing)、控制器(Controllers)、视图(Views)、模型(Models)、ActiveRecord、助手方法(Helper Methods)、会话(Sessions)和缓存(Caching)等。 实际操作时,你需要先...

    Ruby-RecordCache在Rails3中缓存ActiveModelRecords

    它不依赖于Rails的默认缓存机制,如Action Cache或Page Cache,而是提供了一个更直接的方法来缓存模型实例。 **RecordCache的工作原理** RecordCache的核心思想是将模型实例序列化为JSON格式,并存储在内存中的...

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

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

    Web开发敏捷之道--应用Rails进行敏捷Web开发 之 Depot代码。

    综上所述,这个压缩包提供的Depot项目是一个典型的Rails应用实例,适合初学者了解Rails框架的基本结构和敏捷开发流程。通过研究源码,开发者可以学习到如何组织代码、设置数据库、编写控制器逻辑、创建视图模板以及...

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

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

    Rails Cache

    例如,当模型实例被更新或删除时,可以自动清除相关的缓存。此外,还可以通过设置缓存过期时间,让缓存自动失效。 在实际应用中,合理使用Rails Cache 可以显著提升用户体验,减少数据库压力,但同时也需要注意缓存...

    rails 部署 nginx

    在部署Rails应用时,还需要考虑性能优化,比如启用HTTP缓存,调整Nginx的连接超时时间,配置Rails应用的线程池大小,以及使用如 unicorn 或 puma 这样的多进程或多线程服务器。 7. **部署工具**: 为了自动化部署...

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

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

    Rails中应用Ext.tree:以中国的省市地区三级联动选择为例

    在Ruby on Rails(Rails)框架中,开发人员经常需要实现各种...通过学习这个实例,开发者可以掌握如何在Rails应用中集成第三方库,处理层级数据,以及创建交互式的前端界面。这对于提升Web应用的用户体验非常有价值。

    基于 Redis 的 Rails 简单会话存储 .zip

    此库不提供任何与缓存相关的功能,并且仅适用于 Rails 应用程序。如需其他框架或对缓存的直接支持,请查看 redis-store。安装对于 Rails 3+,将其添加到您的Gemfile意愿即可。gem 'redis-session-store'配置请lib/...

    ruby on rails基础教程

    它提供了许多内置功能,如数据库迁移、路由、会话管理、缓存等,让开发者可以专注于业务逻辑而不是重复性工作。 三、Rails的MVC架构 MVC模式是Rails的核心,包括模型(Model)、视图(View)和控制器(Controller)...

    The Rails 4 Way

    - 开发模式下,Rails会启用缓存、加载gem和编译Sass等资源。 - 该模式旨在提高开发效率,提供更友好的错误提示。 4. **测试模式** - 测试模式主要用于执行测试套件时使用。 - 在这种模式下,Rails会禁用一些...

    Agile Web Development with Rails 3nd Edition Beta

    对于Rails的高级特性,如资产管道、邮件发送、会话管理、缓存策略、部署策略等,也有详尽的介绍。 在“敏捷Web开发”的背景下,书中强调迭代开发、用户反馈和持续集成的重要性。通过实例,读者将学习如何运用敏捷...

    flex on rails文档

    - 性能优化:通过缓存策略、数据分页等技术提高应用程序性能。 - 错误处理和日志记录:确保应用程序能够优雅地处理错误,并通过日志记录进行调试和监控。 通过以上几个方面,我们可以看到 **Flex on Rails** 的强大...

    Pragmatic.Bookshelf.Advanced.Rails.Recipes.May.2008

    3. **Caching**:Rails提供了多种缓存策略,如页面缓存、动作缓存和碎片缓存,以提高应用程序性能。书中会讲解如何有效地运用这些策略,降低服务器负载。 4. **Testing and Debugging**:书中详细阐述了Rails的测试...

    Agile Web Development with Rails, 4th Edition, Rails 3.1

    - 本书探讨了多种性能优化技巧,如缓存策略、异步处理等,并介绍了常见的部署方案(如Heroku、AWS等),帮助开发者实现从开发到上线的全过程自动化。 8. **社区支持与最佳实践** - Ruby on Rails拥有一个庞大的...

    ruby on rails 教程

    - **Session**:讲解了Session的概念、存储方式及管理策略,包括如何将模型实例存储在Session中,以及如何自定义Session的存储位置(如内存、数据库、缓存服务器等)。 - **Cookies**:解释了Cookies的工作原理,...

    跨越边界 Ajax on Rails

    4. **实践案例**:通过书中提供的实例,动手实践Ajax on Rails,巩固理论知识。 总的来说,《跨越边界 Ajax on Rails》是一本深入浅出的指南,它不仅解释了Ajax和Rails的结合,还提供了丰富的实践示例,帮助开发者...

Global site tag (gtag.js) - Google Analytics