Rails Layout Extension Feature ======= 1. simplifying content_for usage by extracting key/value pair from content_for data like YAML and setting them as content_for variables 简化content_for的使用,采用类似YAML的key/value方式定义content_for变量 2. let erb file can determine layout by changing the default behavio ...
今天执行一个页面的的时候发现日志输出了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?就出现了上述的症状,虽然执行结果正常,但背后的行 ...
2008-04-16

Ruby元编程 打破private protected限制

关键字: meta programming
需求源于分离职责, 对一些涉及多个model的业务,专门分出一个service层来负责,一个service的方法就是装配不同model提供的方法,这些model的方法应该只能被service调用,而不能被controller调用,那就将这些方法设置为private或者protected(绝对限制是做不到的,起码跟普通方法有所区别,不能直接调用),外部只能用send来调用,但如果调用多的话,一是难看且麻烦,二是影响性能,那就meta programming一下吧 思路是动态产生调用者类的子类,然后委托该子类调用父类的private或protected方法,如果调用者是单件类(metaclass ...
ruby的框架确实还很不成熟(这点确实不比java爽),不废话,在某个initializer中加入如下代码 #这里写你要包含的目录 RCOV_APPS_FILES = [/app[\/\\][^\.]+\.rb/] require 'rcov' class Rcov::CodeCoverageAnalyzer alias_method(:old_dump_coverage_info, :dump_coverage_info) unless method_defined?(:old_dump_coverage_info) def dump_coverage_info(for ...
http://code.google.com/p/rquerypad/ 目前支持rails 2.0, rails 1.2(部分2.0 方式的查询))(谢谢Quake的测试及建议) Simplify query options with association automation and improve inner join for activerecord of rails 字段名包含关联信息,不需额外再写include或者joins 原来activerecord仅支持inner join在最后,现在没有这个限制 不想用svn,直接下载可以到 https://rubyforge.org/ ...
新开bba96圈子 http://bba96.group.javaeye.com/ bba96 框架当前版本 2.2,包含: bba96-core 核心框架,封装Hibernate Criteria,提供方便的查询以及分页支持,查询参数 bba96-struts 基于Struts2的开发框架,依赖core,提供便捷的CRUD以(分页支持),通过设置form的参数就可以实现复杂的分页查询 bba96-security 安全框架,依赖core,借助core query的简捷实现数据权限(未更新) 项目主页:http://bba96.dev. ...
lllyq
搜索本博客
我的相册
7497f85c-d3a0-4d3d-aeb1-49f948491e73-thumb
bba96-example-student-code-1-6
共 7 张
最近加入圈子
存档
最新评论