about

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

blog

NERDTree插件

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

curl命令详解

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

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...

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

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

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

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

Rails中的查询(基础篇)

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

1 + N 查询

    上次分享了 rails 中的基本查询,这次我们来看一个在 rails 中非常常见的问题:1+N 查询,什么是1+N查询,我们来看这样一个例子:# app/model/boy.rb
 class Boy < ActiveRecord::Base
 attr_accessible :age, :height, :hobby, :name, :weight
 has_one :address
 end
 
...

eager_load详解

       前面我们学习了解决 1+N 问题的三种方法,includes、preload、eager_load,本次分享我们来详细的学习者三种方法的机制,这里面会涉及一些数据库知识,通过本次分享,我相信大家会学到很多之前不熟悉的知识。我们的示例都是围绕着这两个 model 展开的:class User < ActiveRecord::Base
 has_many :addresses
 end
 
 class Address...

乐观锁

       在更新数据库记录的时候,“锁”有时特别重要,当两个人同时更新一条记录的时候,后一个人的更新会把前一个人的更新覆盖掉,而后一个人却对此毫不知情。假设 people 表里有这样一条记录:(name:星哥, sex: male, position: developer),两个人都点击了“编辑”按钮进入了编辑界面,第一个人把这条记录的 name 字段改成了“星弟”,并点击了提交,此时这条记录是:(name:星弟, sex: male, position: deve...

详解ruby中的异常处理

       ruby 有一套完整的异常处理机制,使用关键词 begin、rescue、ensure、raise,再配合 retry、else等,即可实现你想达到的一切目标,而且十分简单,现在我们就来看一下如何使用他们。begin:我们把可能产生异常的代码放到 BEGIN 块中rescue:捕获 BEGIN 中执行的代码可能抛出的异常,默认参数为 StandardError。ensure:无论是否捕获到异常,ENSURE 块里的代码都会被执行raise:抛出一个指定的异...

contact

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