Coding is elsewhere

宅男,宅在哪都是宅。前些日子,和一干兄弟去厦门鼓浪屿宅了一周。 本来是想住在厦门的21howtel的,还托Suave要了个董事长折扣,可惜订的时候被告知房间安排不过来。结果又查点评又搜攻略,最后几经周折订在了鼓浪屿的琴海庄园。 15号一早出发,到厦门后我们专门选择做公交车,在城里转了一大圈最后到码头,感觉厦门和一般城市区别不大。乘轮渡到鼓浪屿,有琴海庄园的人接我们,很容易就到了旅馆。 琴海庄园在一个小山坡上,是岛上众多的家庭式旅馆之一。 上山是有点累,但环境很好,很安静,从窗口一看出去就是大海。 安顿好后,第一件事就是吃饭。先去点评网兵器谱第一名的马拉桑喝了果汁,以亲身实践再次证明大众点评是一个很不靠谱的事情。随后尝试了本地特色鱼丸,说实话我还是比较喜欢农展馆南路上的潮汕鱼丸店,更劲道一些。最后在一家小吃店里,胡乱点了一堆东西。 随后,会驻地开始办公。 琴海庄园有一个很不错的大厅,是我们主要的活动场所。白天工作。 晚上下棋。 当然,我们也没少在岛上转悠。每天下山觅食,都会找一条不同的路绕一大圈再回来。 鼓浪屿和厦门区别很明显。岛上基本上都是两三层的小楼,很多是当年华侨盖的别墅。 街道狭小,全岛禁车,包括自行车,只能偶尔看到旅游电瓶车拉着客人走过。 岛上众多的别墅小楼,大多年代久远,有的变成大杂院, 有的只有很少的人住在里面。 有很多似乎根本没有人住,甚至已经成了危楼。 还有的改成了家庭式旅馆。 每次吃完晚饭,我们也会到处转一圈,晚上的鼓浪屿,也相当有感觉。 岛上还有不少小动物。 有猫猫。 同事拍到的蚊子。 还有满地打滚的海鲜。 周末的时候,去了趟厦门,主要的感觉是饮食质量远好于鼓浪屿。首推乌糖沙茶面。 小眼镜大排档也相当实惠。 只是景色就没那么好了。 在鼓浪屿的最后一个下午,去爬了一趟旅馆对面的日光岩,眺望了一下,那块岩石和一朵特别绿的树之间,就是我们住的地方。 21号,全团人马返回北京。

动态组合named_scope

named_scope是Ruby On Rails 2.x后一个非常好用的功能,介绍的地方已经很多,在这里不再多说。 named_scope有一个很好的地方,是数个scope和scope可以组合,本来很难看的代码可以变成这样优美可读的形式: Post.published.by_author(user).within_a_week.in_forum(forum) 但有时候,到底需要将哪些scopes组合在一起,在运行时才能决定,没法在程序中写死。找了一下,似乎没有现成的解决方案,就写了一个叫ScopeGroup的plugin。 使用这个plugin,可以在运行时动态组合named scope,然后可以针对这个组合来调用find, count, average等等函数。 比如,如下代码: # 为model Post创建一个ScopeGroup scope_group = ScopeGroup.new(Post) # 将scope分别加入组合 scope_group.published scope_group.by_author(user) scope_group.within_a_week 再调用 scope_group.find(:all) 就等同于: Post.published.by_author(user).within_a_week 我们碰到的一个用户场景是需要根据地区、类别、状态等各种条件分层次组合生成报表,使用了动态组合named scope的方式,大大简化了代码。 我把这个插件放在了github: ScopeGroup项目主页链接。 安装方式: script/plugin install git://github.com/robin/scopegroup.git