about

I’m glad you found me. My name is xing zhou and I am a developer

blog

Rails中的查询(基础篇)

        总结了一下 Rails 中的查询,本系列分享包含 ActiveRecord 的各种查询方法,主要内容有:使用不同的方法和条件查询通过指定的排序、查询条件、分组查询数据1 + N 问题(会在下一节详细介绍)使用动态的 finder数据的存在性检验数学公式(sum、average、sum、max、min等)注:本分享适用于 Rails3.2.X 版本,有些内容在其它版本可能不适用       通常我们使用原生的 SQL 来做数据库查询,但是Rails 的 A...

rails中的模型关联(进阶篇2)

       上次模型关联主要分享了多对多关系、多态,我们本次分享将继续上次的内容,给大家分享一下 `rails` 模型关联中的一些”小玩意“。缓存命名冲突更新schema关联关系作用域双向关系缓存所有通过关联关系产生的方法都是带缓存的,缓存会默认保存最近一次查询的结果。customer.orders # 去查数据库
 customer.orders.size # 直接读缓存
 customer.or...

rails中的模型关联(进阶篇)

       总结了一些 rails 模型关联,有些可能不是很常见,但是会很有用,在这里和大家分享一下。1. has_many :through        has_many 的用法大家可能都很熟悉,但是后面跟一个 `:through` 呢? has_many :through 通常表示两个模型之间的多对多的关系是通过(through)另外一个 model 关联起来的,举个例子:一个男孩儿可以通过约会交往多个女孩儿,同时一个女孩儿可以通过约会交往多个男孩儿,相关的`m...

find_each批量获取数据

       我们经常需要先读取大量的数据然后进行一些操作,比如对取出的每个元素做某些操作,或者导出数据等。通常情况下一般人会这么做:直接使用一个 each 循环整个数据库表# This is very inefficient when the users table has thousands of rows.
 User.all.each do |user|
 NewsLetter.weekly_deliver(user)
 end&#1...

curl命令详解

       4月30号那天给UED提供ajax接口,因为本地不好测试接口,再加上开发时有点急,配合UED测试时反复出错,不是少写了个什么,就是逻辑有点小问题,浪费了时间不说,更重要的是:丢了咱开发的面子,正当这个时候,咱灵机一动想起了curl,一下搞定,及时的挽回了面子,这两天详细的过了一遍curl这个神器,下面请看我整理的用法。简介       curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上...

NERDTree插件

      NERDTREE是vim下的一款非常重要的插件,它以一个“树”的形式列出当前路径下的所有文件和目录,你可以通过键盘或者鼠标来操作它,它还提供了一些简单的文件操作,比如增删改。下面我们从安装开始来探索这一款插件吧。
 
 
 安装: 
 
       如果你按照上一篇文章配置了VIM,你已经安装好了NERDTree了,通过Vundle,你只要在.vimrc文件里添加: 
 
 
 &#...

rails中的group_by


        在rails应用程序中经常会遇到这样的需求,把查询出的ActiveRecord数据按照指定的方式来排序,比如本博客的博客列表页和友情链接页,这个时候我们就要用到group_by,简单理解就是按照某种方式分组,为了说明group_by是如何工作的,我们在console中示范一下。 
 
 
 
 
 
       在上面的代码中,我们先使用range创建了一个包括从1到20的数组,然后对这...

接口容错机制

       这几天在做一个项目,要通过thrift接口和java进行数据传输,数据层的逻辑操作均由java完成,ruby端主要负责和前端交互和展示,其中有两个重要的问题,一是容错,要保证java接口在挂掉之后仍然不影响页面重要部分的展示,即保证页面不会超时不会挂掉;二是性能问题,调用接口次数要尽可能的少,把可以合并的接口合并成一个,并对所有的接口返回数据做缓存,这次我们主要描述系统的容错设计。
 
        既然是调用别人的接口,所以,一定要记录...

使用rbenv的安装ruby和rails

对于到底是使用rvm还是rbenv,一直处于争论之中,经过体验和对比,我最终放弃了rvm,选择了rbenv。这篇简单介绍 rbenv 的安装和使用. 如果可以请直接看作者的文档: https://github.com/sstephenson/rbenvrbenv 用来管理多个版本的 ruby 在用户目录的安装和使用, 和 rvm 二选一使用. 具体区别 rbenv 的文档里有说明, 社区里也有讨论.系统需求OSX: 请找一个网好的地方, 从 app store 里下载 ...

分页插件Kaminari

       Rails 2.x 中最常用的分页插件是 will_paginate ,这个相信大家都耳熟能详
 不过到 Rails 3 以后,我发现一个更好选择,那就是 Kaminari
 我选择它,主要是看中其直观灵活的界面定制功能,它不像 will_paginate 那样需要配置一大堆参数,而是采用 view 文件来进行配置,非常好用
 
 安装
 
 很简单,在 Gemfile 增加一行即可
 
 &...

contact

want to talk something or join Thoughtworks, send email to Edward_mjz@hotmail.com