<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <iframe src="http://www.blogger.com/navbar.g?targetBlogID=4684235500622716427&amp;blogName=Caiwangqin&#39;s+blog&amp;publishMode=PUBLISH_MODE_HOSTED&amp;navbarType=BLUE&amp;layoutType=CLASSIC&amp;searchRoot=http://blog.caiwangqin.com/search&amp;blogLocale=zh_CN&amp;v=1&amp;homepageUrl=http://blog.caiwangqin.com/&amp;vt=3393395200455623441" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" height="30px" width="100%" id="navbar-iframe" allowtransparency="true" title="Blogger 导航和搜索"></iframe> <div></div>

Caiwangqin's blog

Focus on Web2.0, Business, Architecture, Agile, Technic and beyond…

详细解读Rails Caching

2006年9月10日 星期日

问题出现:


I am trying to use caches_action and the agile book says that it is keyed

off the URL, however it does not seem to pick up the URL parameters.


http://localhost:3000/controller/action/id?foo=bar

and

http://localhost:3000/controller/action/id?foo=foobar


Returns the same page.


问题原因:


Rails Caching不能Cache Parameter,所以caches_action时会出现上述原因。 


解决方法:


1. 修改rails routes.rb,将原来的”?parameters=”的调用方式更改为/action/:parameters的访问方式,以使用rails cache不同的fragment


2. 安装一个rails-caching的plugin,然后修改environment.rb中增加cache key for action : Action Cache Update Plugin


参考资料:


http://wiki.rubyonrails.org/rails/pages/Action+Cache+Update+Plugin


http://blog.craz8.com/articles/2005/12/26/rails-action-cache-upgrade 


http://scottstuff.net/presentations/rails-caching/


http://lists.rubyonrails.org/pipermail/rails/2006-February/017726.html


 


标签:

posted by Jesse Cai, 上午1:15

0 Comments:

发表评论

订阅 帖子评论 [Atom]

<< 主页