作者: liubin 日期: 2007年09月14日  分类:Rails  快抢沙发 
acts_as_taggable
这个世界到处都是tag 而且这个世界上好像有两个acts_as_taggable,一个是dhh的plugin版的,一个是gem版的。 比较了半天,发现还是gem版的比较好(http://rubyforge.org/projects/taggable/)。 具体来说 1.gem对于不同的要tag的对象,可以用TagsTable1s格式的表来存tag和对象的关系,比如photo的tag用photos_tags表。 plugin版的则只用一个表taggings,用taggable_type这个字段来表示tag的对象类型。 2.可以为tag关系增加属性。 plugin版的tag关系表只有3个字段(不包括id),要想给这个tag关系加其它属性则比较困难。 gem则容易多了。 gem的tag和被tag对象之间的连接...
1606 days前 / 2,456 次浏览阅读全文
作者: liubin 日期: 2007年09月07日  分类:Ruby  快抢沙发 
RubyConf 2007 agenda
RubyConf 2007 November 2-4, 2007 Charlotte, North Carolina http://www.rubyconf.org/agenda.html
1613 days前 / 2,994 次浏览阅读全文
作者: liubin 日期: 2007年09月05日  分类:技术  快抢沙发 
哪有数据库抱怨sql太复杂的
其实就是一个简单的update语句 UPDATE TAB1 SET COL1 = SUBSTRING(COL1 FROM 1 FOR POSITION( "AAAAAA" IN UPSHIFT(COL1))-1)  || "BBBBBB"||  SUBSTRING(COL1 FROM   POSITION( "AAAAAA" IN UPSHIFT(COL1))  + 7  FOR CHAR_LENGTH(COL1) - POSITION( "AAAAAA" IN UPSHIFT(COL1)) - 7)  WHERE POSITION( "AAAAAA" IN UPSHIFT(COL1)) > 0; 这个语句就是想把一个字段的AAAAAA替换成BBBBBB而已,不过sql/mp没有提供replace之类的函数,只好用这样的土方法了。(如果这...
1615 days前 / 1,422 次浏览阅读全文
作者: liubin 日期: 2007年09月03日  分类:Rails  快抢沙发 
Rails中使用ESI实现页面cache
什么是ESI ESI的全称是Edge Side Includes,是一个基于XML的标记语言,目的是在HTTP中组装各种资源。是由Oracle和Akamai等公司提议的,在W3C的网站也可以找到相关规格说明,最新的是2001年的了,也不是什么新东西。传统的cache技能基本都已页面为单位进行缓存,问题就是页面部分的动态内容可能比较多,而且是每个客户端的内容都不一样(比如个人的登录信息,欢迎xxx等。),缓存比较困难。ESI为了能把页面的一部分进行缓存,使用基于XML的标记语言,来描述对page内个内容的缓存情况。这样,服务器(缓存部分)就可以只缓存共同部分了。 ESI有点类似SSI,但是它比SSI功...
1617 days前 / 2,735 次浏览阅读全文