- 浏览: 215024 次
- 性别:
- 来自: 绍兴
文章分类
最新评论
-
112703013:
你好, 想问个问题 就是我这边上传一个zip文件 大概有100 ...
rails文件上传下载和删除 . -
chen_miao:
qplovechinese 写道 很好!
3q
simple jQuery date-picker plugin 使用 -
qplovechinese:
很好!
simple jQuery date-picker plugin 使用
三种方式 Page Caching, Action Caching和 Fragment Caching
缓存默认只在production 环境下启动
Page Caching
caches_page :public_content
以URL为准
expire_page :action =>"public_content"
Action Caching
caches_action :premium_content
以URL为准
expire_action :action => "premium_content", :id => article
Page Caching 和 Action Caching的实例:
class ContentController < ApplicationController
before_filter :verify_premium_user, :except => :public_content
caches_page :public_content
caches_action :premium_content
cache_sweeper :article_sweeper,
:only => [ :create_article,
:update_article,
:delete_article ]
def public_content
@articles = Article.list_public
end
def premium_content
@articles = Article.list_premium
end
private
def verify_premium_user
return
user = session[:user_id]
user = User.find(user)
if user
unless user && user.active?
redirect_to :controller => "login", :action => "signup_new"
end
end
end
删除过期缓存内容:
app/models中加article_sweeper.rb
class ArticleSweeper < ActionController::Caching::Sweeper
observe Article
def after_create(article)
expire_public_page
end
def after_update(article)
expire_article_page(article.id)
end
def after_destroy(article)
expire_public_page
expire_article_page(article.id)
end
private
def expire_public_page
expire_page(:controller => "content", :action => 'public_content')
end
def expire_article_page(article_id)
expire_action(:controller => "content",
:action => "premium_content",
:id => article_id)
end
end
app/public/content/show/1默认caches_page文件路径
app/public/content/show/1.html
Fragment Caching
controller:
class Blog1Controller < ApplicationController
def list
@dynamic_content = Time.now.to_s
unless read_fragment(:action => 'list')
logger.info("Creating fragment")
@articles = Article.find_recent
end
end
end
#read_fragment()查看一个action的fragment缓存是否存在
view:
<%= @dynamic_content %> <!-- 动态内容 -->
<% cache do %> <!-- 缓存开始-->
<ul>
<% for article in @articles -%>
<li><p><%= h(article.body) %></p></li>
<% end -%>
</ul>
<% end %> <!-- 结束缓存 -->
<%= @dynamic_content %> <!-- 其它动态内容 -->
使用多个缓存段:
<% cache(:action => 'list', :part => 'articles') do %>
<ul>
<% for article in @articles -%>
<li><p><%= h(article.body) %></p></li>
<% end -%>
</ul>
<% end %>
<% cache(:action => 'list', :part => 'counts') do %>
<p>There are a total of <%= @article_count %> articles.</p>
<% end %>
#使用:part参数区分同一action下的不同缓存段
缓存过期
controller:
class Blog2Controller < ApplicationController
def list
@dynamic_content = Time.now.to_s
@articles = Article.find_recent
@article_count = @articles.size
end
def edit
# 编辑文章时不更新统计缓存
expire_fragment(:action => 'list', :part => 'articles')
redirect_to(:action => 'list')
end
def delete
#删除文章时同时删除两个缓存
expire_fragment(:action => 'list', :part => 'articles')
expire_fragment(:action => 'list', :part => 'counts')
redirect_to(:action => 'list')
end
end
expire_fragment()可接正则表达式
expire_fragment(%r{/blog2/list. })
Fragment Caching存储选项设置:
ActionController::Base.fragment_cache_store = <下面的选项之一>
ActionController::Caching::Fragments::FileStore.new(path)
ActionController::Caching::Fragments::DRbStore.new(url)
ActionController::Caching::Fragments::MemCachedStore.new(host)
片段缓存还可以这么写哦:
<%cache 'name' do %>
^^^^^^^
<%end%>
http://blog.chinaunix.net/uid-601661-id-2088387.html
发表评论
-
require,include,load,extend的用途和区别
2013-03-01 22:47 976这四个方法还是很好玩很有用,也是比较容易混的。 ... -
ruby 标准类型总结
2013-02-01 16:45 1240一、数字 Ruby支持整数 ... -
RMagick 简介
2013-01-18 20:38 1405RMagick 是一个将 Ruby 语言绑定到 ImageM ... -
ARP欺骗功能
2013-01-12 22:47 1155一、设置前准备 当使用了防止ARP欺骗功能(IP和 ... -
淘宝开源编辑器KISSY Editor
2013-01-04 16:46 2375KISSY Editor 是开源项目 KISSY ... -
Rails创建定时任务
2012-12-10 10:21 1839Task & Rexcel 最终生成的报 ... -
rails缓存学习
2012-11-27 16:38 1885FORM:http://kenbeit.com/tag/ ... -
Ruby on Rails 简单页面缓存
2012-11-16 17:28 1231三种方式 Page Caching, Action Ca ... -
Ruby写入Excel文件 插件方法
2012-11-01 16:21 1522spreadsheet插件(主要是excel生成写入数 ... -
RUBY操作EXCEL文件
2012-10-31 17:05 1415使用ruby来操作excel文 ... -
Ruby on Rails的session和session存储方案
2012-10-18 17:42 1282session:页面间的信息保存手段。使用:赋值 ses ... -
Ruby程序打包成可执行文件的工具 - RubyScript2Exe
2012-09-19 21:28 2273RubyScript2Exe能够将你的Ruby应用程序转成一个 ... -
rails中实现kindeditor中的图片上传
2012-09-14 16:10 1648FROM: http://blog.sina.co ... -
js 彷excel 键盘上下左右移动
2012-09-03 19:11 3030思路假设初始坐标为(0,0)首先要算出表格的最大最小坐标 即( ... -
ruby Hash 总结
2012-08-31 18:51 62961. 如何创建Hash? x = Hash.newx = { ... -
ruby inject,循环计算优化
2012-08-27 16:51 1325From:http://blog.jayfields.com/ ... -
jquery 图表插件highcharts & highstock
2012-08-23 14:43 11191Highcharts是纯JavaScript编写的图表库,提 ... -
rails or ruby 中 fields_for 提交方式
2012-08-20 20:10 1630Project这个Model的new表单,我们需要在创建Pro ... -
Rails中导出excel的快速简便的方法
2012-07-31 15:51 1094controller def to_e ... -
rails array
2012-07-31 15:19 1378Array& 取两数组相同* ...
相关推荐
在 Ruby on Rails 中,页面缓存是一种优化性能的技术,尤其适用于那些内容相对静态或者对用户个性化要求不高的网页。页面缓存的工作原理是将动态生成的 HTML 页面直接保存到服务器的文件系统中,后续的相同请求可以...
### Ruby on Rails 101:深入理解与实践 #### 引言 《Ruby on Rails 101》是一本介绍Ruby on Rails(简称RoR或ROR)的基础书籍,旨在为初学者提供一个全面而深入的学习框架。本书由Peter Marklund编写,包含了五天...
本书《Ruby on Rails 实践》是一本指南,旨在向读者介绍Ruby on Rails框架的使用,并通过实践案例帮助读者掌握其全貌。本书适合已经了解HTML、JavaScript和CSS,并且对Ruby基础语法有所认识的开发者。即便读者没有...
Ruby on Rails(简称Rails)是一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构...这个系统需要综合运用Ruby on Rails的各种特性和最佳实践,以提供稳定、高效、易用的在线考试服务。
Ruby On Rails 框架自它提出之日起就受到广泛关注,在“不要重复自己”,“约定优于配置”等思想的指导下,Rails 带给 Web 开发者的是极高的开发效率。 ActiveRecord 的灵活让你再也不用配置繁琐的 Hibernate 即可...
Ruby on Rails,简称Rails,是基于Ruby编程语言的一个开源Web应用程序框架,以其“约定优于配置”(Convention over ...通过系统的阅读和实践,你将能够熟练掌握Ruby on Rails,开发出高效、可维护的Web应用程序。
Ruby on Rails,简称Rails,是一种基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和代码的可读性。Rails的核心理念是“DRY”(Don't Repeat Yourself),强调...
这个中文版的《Ruby On Rails实践》PDF文档,无疑为中文学习者提供了一条理解这一强大框架的捷径。 Rails的核心理念是“约定优于配置”(Convention Over Configuration),它通过默认设置简化了许多常见的编程任务...
Ruby on Rails:Rails性能优化与缓存策略.docx
### Ruby on Rails企业应用开发详解 #### 一、引言 《Ruby on Rails Enterprise Application Development》这本书由Elliot Smith和Rob Nichols共同编写,由Packt Publishing出版。该书旨在为读者提供一个完整的...
《Ruby on Rails 入门经典教程》是一本旨在引导初学者轻松掌握Ruby on Rails框架的教程。Ruby on Rails,简称ROR,是基于Ruby语言的一个开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,以其简洁、...
**标题解析:**“ruby on rails 教程”直指文档内容旨在教授Ruby on Rails框架的基础知识和应用技巧,Ruby on Rails(RoR)是一种用于Web开发的开源框架,基于Ruby语言,它遵循MVC(模型-视图-控制器)架构模式,...
### 基于Ruby语言的Ruby on Rails项目及其代码方案 #### 一、项目概述 本项目基于Ruby语言,利用Ruby on Rails(简称Rails)框架构建。Ruby on Rails是一款使用Ruby语言开发的应用程序框架,其核心是MVC(Model-...
以上就是Ruby on Rails学习案例中涵盖的关键知识点,通过实践这些概念和技术,你将能够构建出功能完善的Web应用程序。在"Learning-Ruby-on-Rails-master"这个项目中,你可以找到具体的代码示例和练习,逐步加深对...
Rails 2.1在缓存方面进行了重大改进,提供了更多的缓存策略和选项,包括页面缓存、动作缓存和片段缓存等。这些改进有助于提高应用性能,尤其是在高流量的情况下。 #### 更新Ruby on Rails 更新Rails版本同样简单,...
Ruby on Rails,简称Rails,是基于Ruby...以上只是Ruby on Rails的部分基础知识,实际开发中还会涉及到更多如缓存、部署、安全性、性能优化等方面的知识。通过深入学习和实践,你可以更好地掌握这个强大的Web开发框架。
根据提供的标题、描述以及部分内容,我们可以清晰地了解到这段文本记录了一次安装Ruby on Rails及其相关依赖库的过程。基于这些信息,我们将深入探讨Ruby on Rails框架的依赖结构,并解释每个依赖库的功能及其在...
标题与描述均提到了“ruby on rails安装环境”,这表明文档主要关注的是如何在特定的环境中设置Ruby on Rails。Ruby on Rails(常简称为Rails)是一种用于开发Web应用程序的开源框架,采用Ruby语言编写,遵循MVC...