今天执行一个页面的的时候发现日志输出了50行的"==> Got Users::User from cache. (0.00000)",觉得很奇怪,没有请求这么多次user啊,分析到后面发现原来是gettext跟cache_fu着两个插件的冲突引起的
他们的方法都是mixin到model中调用,都有一个cache?的方法,gettext的是判断是否cache i18n message,cache_fu的是判断是否cache model,结果gettext的cache?被cache_fu的cache?覆盖了,gettext内部调用了多次cache?就出现了上述的症状,虽然执行结果正常,但背后的行 ...
需求源于分离职责, 对一些涉及多个model的业务,专门分出一个service层来负责,一个service的方法就是装配不同model提供的方法,这些model的方法应该只能被service调用,而不能被controller调用,那就将这些方法设置为private或者protected(绝对限制是做不到的,起码跟普通方法有所区别,不能直接调用),外部只能用send来调用,但如果调用多的话,一是难看且麻烦,二是影响性能,那就meta programming一下吧
思路是动态产生调用者类的子类,然后委托该子类调用父类的private或protected方法,如果调用者是单件类(metaclass ...
- 浏览: 14966 次
- 性别:

- 来自: Shanghai

- 详细资料
搜索本博客
我的相册
filemanager
共 8 张
共 8 张
最近加入圈子
最新评论
-
基于hibernate的开源通用 ...
不要都忙着想实现,性能如何很重要,对几十万条以上记录的表进行分页性能如何?有没有 ...
-- by vickey -
基于hibernate的开源通用 ...
授之以鱼不如授之以渔
-- by vlinux -
基于hibernate的开源通用 ...
而且现在都找不到下载了の
-- by fangsimple -
Rlayout,erb定义layout ...
更新了,加了支持field tag的主题模板的功能
-- by lllyq -
基于hibernate的开源通用 ...
我觉得不怎么样,根本就不像是一个开源的东东,源码没有任何注释。不是一个合格的东东
-- by bjheby






评论排行榜