给新闻添加页面缓存、以及更新时缓存清除:
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/
分享到:
相关推荐
以及Rails框架的核心概念,如路由(Routing)、控制器(Controllers)、视图(Views)、模型(Models)、ActiveRecord、助手方法(Helper Methods)、会话(Sessions)和缓存(Caching)等。 实际操作时,你需要先...
它不依赖于Rails的默认缓存机制,如Action Cache或Page Cache,而是提供了一个更直接的方法来缓存模型实例。 **RecordCache的工作原理** RecordCache的核心思想是将模型实例序列化为JSON格式,并存储在内存中的...
在您的类中使用has_cache提供了一个cached方法,该方法允许自动缓存通常在类或类的实例上可用的方法的结果。 它通过从调用cached的位置推断密钥,减轻了创建和跟踪密钥的麻烦,就像使用标准缓存存储接口一样。 用法...
综上所述,这个压缩包提供的Depot项目是一个典型的Rails应用实例,适合初学者了解Rails框架的基本结构和敏捷开发流程。通过研究源码,开发者可以学习到如何组织代码、设置数据库、编写控制器逻辑、创建视图模板以及...
这样做的问题是,在生产中,我们经常有多个Rails实例在运行,并且每个实例都会有自己的缓存存储,这并不是对资源的充分利用。 文件存储适用于较小的应用程序,但是效率不高,因为读取和写入硬盘驱动器相对较慢。 ...
例如,当模型实例被更新或删除时,可以自动清除相关的缓存。此外,还可以通过设置缓存过期时间,让缓存自动失效。 在实际应用中,合理使用Rails Cache 可以显著提升用户体验,减少数据库压力,但同时也需要注意缓存...
在部署Rails应用时,还需要考虑性能优化,比如启用HTTP缓存,调整Nginx的连接超时时间,配置Rails应用的线程池大小,以及使用如 unicorn 或 puma 这样的多进程或多线程服务器。 7. **部署工具**: 为了自动化部署...
模型缓存ModelCache 是一个简单的 Rails 缓存插件,使用memcached 。 它为您的模型提供缓存功能,允许: 基于通用键(ActiveRecord cache_key在幕后添加)在模型实例方法中缓存代码块缓存您的实例方法,可选择使用...
在Ruby on Rails(Rails)框架中,开发人员经常需要实现各种...通过学习这个实例,开发者可以掌握如何在Rails应用中集成第三方库,处理层级数据,以及创建交互式的前端界面。这对于提升Web应用的用户体验非常有价值。
它提供了许多内置功能,如数据库迁移、路由、会话管理、缓存等,让开发者可以专注于业务逻辑而不是重复性工作。 三、Rails的MVC架构 MVC模式是Rails的核心,包括模型(Model)、视图(View)和控制器(Controller)...
- 开发模式下,Rails会启用缓存、加载gem和编译Sass等资源。 - 该模式旨在提高开发效率,提供更友好的错误提示。 4. **测试模式** - 测试模式主要用于执行测试套件时使用。 - 在这种模式下,Rails会禁用一些...
对于Rails的高级特性,如资产管道、邮件发送、会话管理、缓存策略、部署策略等,也有详尽的介绍。 在“敏捷Web开发”的背景下,书中强调迭代开发、用户反馈和持续集成的重要性。通过实例,读者将学习如何运用敏捷...
- 性能优化:通过缓存策略、数据分页等技术提高应用程序性能。 - 错误处理和日志记录:确保应用程序能够优雅地处理错误,并通过日志记录进行调试和监控。 通过以上几个方面,我们可以看到 **Flex on Rails** 的强大...
3. **Caching**:Rails提供了多种缓存策略,如页面缓存、动作缓存和碎片缓存,以提高应用程序性能。书中会讲解如何有效地运用这些策略,降低服务器负载。 4. **Testing and Debugging**:书中详细阐述了Rails的测试...
- 本书探讨了多种性能优化技巧,如缓存策略、异步处理等,并介绍了常见的部署方案(如Heroku、AWS等),帮助开发者实现从开发到上线的全过程自动化。 8. **社区支持与最佳实践** - Ruby on Rails拥有一个庞大的...
- **Session**:讲解了Session的概念、存储方式及管理策略,包括如何将模型实例存储在Session中,以及如何自定义Session的存储位置(如内存、数据库、缓存服务器等)。 - **Cookies**:解释了Cookies的工作原理,...
4. **实践案例**:通过书中提供的实例,动手实践Ajax on Rails,巩固理论知识。 总的来说,《跨越边界 Ajax on Rails》是一本深入浅出的指南,它不仅解释了Ajax和Rails的结合,还提供了丰富的实践示例,帮助开发者...
通过学习《Rails Recipes》中的实例,开发者不仅能掌握Rails的基本用法,还能了解到在实际开发中遇到问题时的解决策略,进一步提升自己的Rails开发技能。同时,结合在线资源,如博客链接...